# [SOLVED]Problemas con ruby/json en actualización

## Jack Krauser

Hola a tod@s.

El día de hoy actualicé el árbol de portage y al momento de actualizar el sistema me topé con ésto que no puedo solucionar:

```
# emerge -avuND @world

 * IMPORTANT: config file '/etc/portage/package.use/paraInstalarXorg' needs updating.

 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS

 * sections of the emerge man page to learn how to update config files.

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! Multiple package instances within a single package slot have been pulled

!!! into the dependency graph, resulting in a slot conflict:

dev-lang/rust:stable

  (dev-lang/rust-1.34.0-r1:stable/1.34::gentoo, ebuild scheduled for merge) pulled in by

    =dev-lang/rust-1.34.0* required by (virtual/rust-1.34.0:0/0::gentoo, ebuild scheduled for merge)

    ^              ^^^^^^^                                                                                                                                 

  (dev-lang/rust-1.33.0:stable/1.33::gentoo, installed) pulled in by

    =dev-lang/rust-1.33.0* required by (virtual/cargo-1.33.0:0/0::gentoo, installed)

    ^              ^^^^^^^                                                                                                                 

It may be possible to solve this problem by using package.mask to

prevent one of those packages from being selected. However, it is also

possible that conflicting dependencies exist such that they are

impossible to satisfy simultaneously.  If such a conflict exists in

the dependencies of two different packages, then those packages can

not be installed simultaneously.

For more information, see MASKED PACKAGES section in the emerge man

page or refer to the Gentoo Handbook.

emerge: there are no ebuilds to satisfy ">=dev-ruby/json-1.8.3[ruby_targets_ruby23]".

(dependency required by "dev-lang/ruby-2.3.8-r1::gentoo" [ebuild])

(dependency required by "dev-ruby/rubygems-2.7.7-r1::gentoo" [installed])

(dependency required by "virtual/rubygems-14::gentoo[ruby_targets_ruby24]" [ebuild])

(dependency required by "dev-ruby/racc-1.4.14::gentoo" [installed])

(dependency required by "dev-ruby/rdoc-6.0.4::gentoo[ruby_targets_ruby24]" [ebuild])

(dependency required by "dev-lang/ruby-2.4.5::gentoo[rdoc]" [installed])

(dependency required by "dev-ruby/minitest-5.11.3::gentoo[ruby_targets_ruby24]" [ebuild])

(dependency required by "dev-lang/ruby-2.5.5::gentoo" [installed])

(dependency required by "dev-ruby/net-telnet-0.2.0::gentoo[ruby_targets_ruby25]" [ebuild])
```

En "make.conf" tengo

```
RUBY_TARGETS="ruby24 ruby25"
```

Y en "eselect ruby list" tengo

```
Available Ruby profiles:

  [1]   ruby24 (with Rubygems)

  [2]   ruby25 (with Rubygems) *
```

No sé a qué se deberá el problema. Espero me puedan ayudar

Muchas graciasLast edited by Jack Krauser on Mon Apr 15, 2019 1:52 pm; edited 1 time in total

----------

## quilosaq

 *Jack Krauser wrote:*   

> 
> 
>   (dev-lang/rust-1.33.0:stable/1.33::gentoo, installed) pulled in by
> 
>     =dev-lang/rust-1.33.0* required by (virtual/cargo-1.33.0:0/0::gentoo, installed)
> ...

 Es posible que tengas limitada la actualización de virtual/cargo en tus archivos de configuración.

Que dice 

```
grep -R virtual/cargo /etc/portage
```

?

----------

## Jack Krauser

 *quilosaq wrote:*   

>  *Jack Krauser wrote:*   
> 
>   (dev-lang/rust-1.33.0:stable/1.33::gentoo, installed) pulled in by
> 
>     =dev-lang/rust-1.33.0* required by (virtual/cargo-1.33.0:0/0::gentoo, installed)
> ...

 

Muchas gracias por tu respuesta quilosaq.

Esta es lo que me dice el comando "grep":

```
# grep -R virtual/cargo /etc/portage

/etc/portage/package.accept_keywords/update12:=virtual/cargo-1.29.1 ~amd64

/etc/portage/package.accept_keywords/update15:=virtual/cargo-1.32.0 ~amd64

/etc/portage/package.accept_keywords/update21:=virtual/cargo-1.33.0 ~amd64
```

----------

## quilosaq

Tienes que añadir a alguno de los archivos en /etc/portage/package.accept_keywords/

```
=virtual/cargo-1.34.0 ~amd64
```

O si prefieres no volver a tener este problema en otra actualización pon simplemente:

```
virtual/cargo ~amd64
```

----------

## Jack Krauser

 *quilosaq wrote:*   

> Tienes que añadir a alguno de los archivos en /etc/portage/package.accept_keywords/
> 
> ```
> =virtual/cargo-1.34.0 ~amd64
> ```
> ...

 

Haciendo lo que me sugieres no tengo el primer problema pero aún mantengo el segundo problema:

```
# emerge -avuND @world

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy ">=dev-ruby/json-1.8.3[ruby_targets_ruby23]".

(dependency required by "dev-lang/ruby-2.3.8-r1::gentoo" [ebuild])

(dependency required by "dev-ruby/rubygems-2.7.7-r1::gentoo" [installed])

(dependency required by "virtual/rubygems-14::gentoo[ruby_targets_ruby25]" [ebuild])

(dependency required by "dev-ruby/json-2.2.0::gentoo[ruby_targets_ruby25,-test]" [installed])

(dependency required by "@selected" [set])

(dependency required by "@world" [argument])
```

El problema es que el paquete "json" se quiere instalar con la dependencia de ruby23 la cual ya no uso y mucho menos la tengo declarada en mis archivos de configuración :/

----------

## quilosaq

¿Qué pasa si añades a rubygems a la actualización?

```
(root)# emerge -avuND @world dev-ruby/rubygems
```

----------

## Jack Krauser

 *quilosaq wrote:*   

> ¿Qué pasa si añades a rubygems a la actualización?
> 
> ```
> (root)# emerge -avuND @world dev-ruby/rubygems
> ```
> ...

 

Al hacerlo me pide añada la "USE" a rubygems pero el otro error sigue apareciendo:

```
# emerge -avuND @world dev-ruby/rubygems

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! Multiple package instances within a single package slot have been pulled

!!! into the dependency graph, resulting in a slot conflict:

dev-ruby/rubygems:0

  (dev-ruby/rubygems-2.7.9:0/0::gentoo, ebuild scheduled for merge) pulled in by

    dev-ruby/rubygems (Argument)

  (dev-ruby/rubygems-2.7.7-r1:0/0::gentoo, installed) pulled in by

    >=dev-ruby/rubygems-2.7.3[ruby_targets_ruby25] required by (virtual/rubygems-14:0/0::gentoo, ebuild scheduled for merge)

                              ^^^^^^^^^^^^^^^^^^^                                                                                                               

It might be possible to solve this slot collision

by applying all of the following changes:

   - dev-ruby/rubygems-2.7.9 (Change USE: +ruby_targets_ruby25)

emerge: there are no ebuilds to satisfy ">=dev-ruby/json-1.8.3[ruby_targets_ruby23]".

(dependency required by "dev-lang/ruby-2.3.8-r1::gentoo" [ebuild])

(dependency required by "dev-ruby/rubygems-2.7.7-r1::gentoo" [installed])

(dependency required by "virtual/rubygems-14::gentoo[ruby_targets_ruby24]" [ebuild])

(dependency required by "dev-ruby/json-2.2.0::gentoo[ruby_targets_ruby25,-test]" [installed])

(dependency required by "@selected" [set])

(dependency required by "@world" [argument])
```

No sé porqué ese bendito "json" pide a ruby23 cuando ya no lo tengo instalado siquiera   :Crying or Very sad: 

----------

## quilosaq

Desinstala dev-ruby/rubygems-2.7.7-r1 y prueba de nuevo.

----------

## Jack Krauser

 *quilosaq wrote:*   

> Desinstala dev-ruby/rubygems-2.7.7-r1 y prueba de nuevo.

 

Wooooow amigo. Eso solucionó mi problema. Al fin se pudo avanzar con la actualización de mi sistema. Muchísisisisimas gracias

Aprovecho la oportunidad para preguntar sobre las letras que aparecen al lado de la palabra "ebuild" cuando el sistema se actualiza, por ejemplo:

```
These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     U  ] media-libs/jbig2dec-0.14::gentoo [0.13-r4::gentoo] USE="png -static-libs -test" 453 KiB

[ebuild  N    ~] dev-ruby/rubygems-3.0.3::gentoo  USE="-server -test" RUBY_TARGETS="ruby24 ruby25 (-ruby23) -ruby26" 883 KiB

[ebuild  N     ] virtual/rubygems-14::gentoo  RUBY_TARGETS="ruby24 ruby25 (-rbx)" 0 KiB
```

Por obvias razones "U" de "update". "N" de nuevo paquete. "R" de reinstalar por cambio de uses. Lo que me he encontrado con ésta actualización es la letra "D" que no sé lo que significa

----------

## quilosaq

La D quiere decir que se tiene instalar una versión anterior del paquete (downgrade). Tienes mas información sobre esa notación que utiliza emerge en:

https://dev.gentoo.org/~zmedico/portage/doc/man/emerge.1.html#lbAI

----------

## Jack Krauser

 *quilosaq wrote:*   

> La D quiere decir que se tiene instalar una versión anterior del paquete (downgrade). Tienes mas información sobre esa notación que utiliza emerge en:
> 
> https://dev.gentoo.org/~zmedico/portage/doc/man/emerge.1.html#lbAI

 

Muchas gracias quilosaq. Muy buena información y una vez más: Gracias por tu ayuda   :Very Happy: 

----------

