# [world]paquetes duplicados..

## upszot

Hola gente..

estoy revizando mi sistema y tengo algunos paquetes duplicados.. me gustaria saber si los puedo unmergear sin problema o corro riesgo de que deje de funcionar algo...

```
M1530 upszot # equery list -d

 * installed packages

[I--] [  ] dev-lang/python-2.4.6 (2.4)

[I--] [M ] dev-lang/python-2.5.4-r3 (2.5)

[I--] [  ] dev-lang/python-2.6.4-r1 (2.6)

[I--] [  ] media-libs/jpeg-6b-r9 (62)

[I--] [ ~] media-libs/jpeg-8a (0)

[I--] [  ] sys-devel/autoconf-2.13 (2.1)

[I--] [  ] sys-devel/autoconf-2.63-r1 (2.5)

[I--] [  ] sys-devel/automake-1.7.9-r1 (1.7)

[I--] [  ] sys-devel/automake-1.8.5-r3 (1.8)

[I--] [  ] sys-devel/automake-1.9.6-r2 (1.9)

[I--] [  ] sys-devel/automake-1.10.3 (1.10)

[I--] [  ] sys-devel/automake-1.11.1 (1.11)

[I--] [  ] sys-devel/gcc-4.1.2 (4.1)

[I--] [ ~] sys-devel/gcc-4.3.3-r2 (4.3)

[I--] [ ~] sys-devel/gcc-4.4.3 (4.4)

[I--] [  ] sys-libs/db-4.3.29-r2 (4.3)

[I--] [  ] sys-libs/db-4.5.20_p2-r1 (4.5)

[I--] [  ] sys-libs/db-4.6.21_p4 (4.6)

[I--] [  ] sys-libs/db-4.7.25_p4 (4.7)
```

En algun momento lei que algunos programas necesitaban compilarse con una version mas vieja del gcc y que por eso se necesitaba mantener la otra version....  pero no se si es el caso de las versiones que tengo yo...

por otro lado me fije en el caso de "media-libs/jpeg" y encontre esto...

```
M1530 upszot # equery depends media-libs/jpeg-6b-r9

/usr/lib/portage/pym/portage/util/__init__.py:1121: DeprecationWarning: The 'myroot' parameter for portage.config.getvirtuals() is deprecated

  result = lazy_item.func(*pargs, **kwargs)

[ Searching for packages depending on media-libs/jpeg-6b-r9... ]

app-emulation/wine-1.1.40 (jpeg? media-libs/jpeg)

app-text/ghostscript-gpl-8.64-r3 (>=media-libs/jpeg-6b)

media-gfx/graphviz-2.26.0 (>=media-libs/jpeg-6b)

media-libs/gd-2.0.35-r1 (jpeg? >=media-libs/jpeg-6b)

media-libs/gegl-0.0.22 (jpeg? media-libs/jpeg)

media-libs/jasper-1.900.1-r3 (jpeg? media-libs/jpeg)

media-libs/libmpeg3-1.7 (media-libs/jpeg)

media-libs/vigra-1.5.0-r1 (jpeg? media-libs/jpeg)

media-video/mplayer-1.0_rc4_p20091026-r1 (jpeg? media-libs/jpeg)                                                                                                                 

net-im/amsn-0.98.3 (media-libs/jpeg)                                                                                                                                             

net-im/centerim-4.22.7-r1 (jpeg? media-libs/jpeg)                                                                                                                                

net-misc/tightvnc-1.3.10-r1 (media-libs/jpeg)                                                                                                                                    

net-print/cups-1.3.11-r1 (jpeg? >=media-libs/jpeg-6b)                                                                                                                            

www-client/chromium-bin-5.0.308.0_p37385 (<media-libs/jpeg-7)                                                                                                                    

www-client/links-2.2 (fbcon? >=media-libs/jpeg-6b)                                                                                                                               

                     (jpeg? >=media-libs/jpeg-6b)                                                                                                                                

                     (livecd? >=media-libs/jpeg-6b)                                                                                                                              

x11-libs/qt-3.3.8b-r2 (media-libs/jpeg)

x11-libs/wxGTK-2.8.10.1-r5 (X? media-libs/jpeg)

x11-misc/slim-1.3.1-r5 (media-libs/jpeg)

x11-terms/aterm-1.0.1-r1 (media-libs/jpeg)
```

 por lo que veo ahi, el unico que molestaria para quitar esa version mas vieja del media-lib/jpeg es chromium.... "www-client/chromium-bin-5.0.308.0_p37385 (<media-libs/jpeg-7)"  y me llama mucho la atencion que pida una version INFERIOR ... y no como en la mayoria de los casos  " >=" 

desde ya gracias por la ayuda..

----------

## i92guboj

```
[I--] [  ] dev-lang/python-2.4.6 (2.4)

[I--] [M ] dev-lang/python-2.5.4-r3 (2.5)

[I--] [  ] dev-lang/python-2.6.4-r1 (2.6)
```

Todo lo que hay en portage debería funcionar con python 2.6. En cualquier caso, asegúrate de que 2.6 es la versión seleccionada antes de hacer nada. Con "eselect python list". Cuando desinstales 2.4 y 2.5 asegúrate de que la versión seleccionada para el sistema es 2.6, y luego ejecuta python-updater, solo por si acaso.

```

[I--] [  ] media-libs/jpeg-6b-r9 (62)

[I--] [ ~] media-libs/jpeg-8a (0)

```

Si está instalado es porque lo necesitas. A no ser que hayas añadido este paquete a world (emergiéndolo a mano sin --oneshot). Puedes mirar en tu fichero /var/lib/portage/world y ver si media-libs/jpeg está ahí. Si está, elimínalo. Luego puedes usar "emerge --ask --depclean", si el paquete no es dependencia de nada que esté instalado entonces  portage lo listará como paquete para desinstalar. Pero, por lo que comentas, es más que probable que necesites ambas versiones. Es por eso que se añadió el slot recientemente a este paquete, que antes no lo tenía.

```

[I--] [  ] sys-devel/autoconf-2.13 (2.1)

[I--] [  ] sys-devel/autoconf-2.63-r1 (2.5)

[I--] [  ] sys-devel/automake-1.7.9-r1 (1.7)

[I--] [  ] sys-devel/automake-1.8.5-r3 (1.8)

[I--] [  ] sys-devel/automake-1.9.6-r2 (1.9)

[I--] [  ] sys-devel/automake-1.10.3 (1.10)

[I--] [  ] sys-devel/automake-1.11.1 (1.11)

```

Esto es perfectamente normal. La típica pesadilla de autotools, cada paquete requiere su propia versión de automake y autoconf.

```

[I--] [  ] sys-devel/gcc-4.1.2 (4.1)

[I--] [ ~] sys-devel/gcc-4.3.3-r2 (4.3)

[I--] [ ~] sys-devel/gcc-4.4.3 (4.4)

```

--depclean debería listar todos los compiladores que estén anticuados para su eliminación. Al igual que con python, antes de hacer nada asegúrate de que la versión activada para el sistema es la correcta, con "gcc-config -l".

```

[I--] [  ] sys-libs/db-4.3.29-r2 (4.3)

[I--] [  ] sys-libs/db-4.5.20_p2-r1 (4.5)

[I--] [  ] sys-libs/db-4.6.21_p4 (4.6)

[I--] [  ] sys-libs/db-4.7.25_p4 (4.7)
```

[/code]

Con esto pasa algo parecido a automake y autoconf. Si no necesitas la funcionalidad db puedes eliminar la dependencia en algunos ebuilds con USE=-berkdb, y recompilando los paquetes necesarios con "emerge -auDvN world". Luego "emerge --ask --depclean"

De forma ideal, en un sistema sano "emerge --ask --depclean" no debería reportar nada para desinstalar.

----------

## will198

Buena respuesta de i92guboj

Es posible saber que hay en el world mirando el fichero que poner i92... pero ¿hay alguna forma de saber que debería estar y que no?

Al principio cuando instalé el Gentoo es muy posible que añadiese paquetes a mano sin el oneshot que no debería haber añadido a world y ahora no se cual debe estar y cual no...

Un saludo

----------

## i92guboj

 *will198 wrote:*   

> Buena respuesta de i92guboj
> 
> Es posible saber que hay en el world mirando el fichero que poner i92... pero ¿hay alguna forma de saber que debería estar y que no?

 

En world se anotan los paquetes que tú instalas de formas (digámoslo así) "consciente". Son aquellos paquetes que escribes en la línea de comandos de emerge, siempre que no se use la opción --oneshot|-1.

Todos los demás paquetes instalados en el sistema se instalan (valga la redundancia) porque son dependencias de los paquetes en world o system. 

Paquetes que normalmente no deberían aparecer en world son las librerías y los paquetes de desarrollo, porque se instalan como dependencias. Nadie instala libsdl de buenas a primeras "porque sí", a no ser que vaya a desarrollar programas basados en SDL (tan solo un ejemplo).

----------

## gringo

perdón por entrar así en el hilo pero es que tengo una duda que me corroe desde hace tiempo y es algo que está relacionado con el tema, además de ser reproducible al 100%.

Suelo mantener a mano mi archivo world como hacen mucho por aqui y me pregunto : porque están cosas como gtk+ o luit o similares ? 

No las he instalado explícitamente desde luego, son dependencias de otros paquetes y como tal entiendo que no deberían aparecer ahi porque lo único que hacen es añadir mas dependencias ( que seguramente ni necesite).

Pero lo mas divertido de todo : si uno limpia el archivo world a mano y acto seguido ejecuta regenworld p.ej. todo lo que has eliminado se vuelve a añadir además de añadir mas cosas por lo que entiendo que debe haber un registro del deptree en algún lado que desconozco que usa esta herramienta para el cálculo de dependencias de los paquetes instalados.

La pregunta es sencilla : porque este comportamiento ?

gracias !

----------

## i92guboj

 *gringo wrote:*   

> perdón por entrar así en el hilo pero es que tengo una duda que me corroe desde hace tiempo y es algo que está relacionado con el tema, además de ser reproducible al 100%.
> 
> Suelo mantener a mano mi archivo world como hacen mucho por aqui y me pregunto : porque están cosas como gtk+ o luit o similares ? 
> 
> No las he instalado explícitamente desde luego, son dependencias de otros paquetes y como tal entiendo que no deberían aparecer ahi porque lo único que hacen es añadir mas dependencias ( que seguramente ni necesite).

 

Nunca me ha ocurrido. Seguro que hay una explicación lógica, lo difícil va a ser encontrarla. Yo empezaría registrando los logs, a ver cuando y como se instalan los paquetes involucrados.

 *Quote:*   

> Pero lo mas divertido de todo : si uno limpia el archivo world a mano y acto seguido ejecuta regenworld p.ej. todo lo que has eliminado se vuelve a añadir además de añadir mas cosas por lo que entiendo que debe haber un registro del deptree en algún lado que desconozco que usa esta herramienta para el cálculo de dependencias de los paquetes instalados.
> 
> La pregunta es sencilla : porque este comportamiento ?
> 
> gracias !

 

De regenworld no tengo ni idea. Rara vez lo he usado.

----------

## will198

Hola a todos,

En world se anotan los paquetes que tú instalas de formas (digámoslo así) "consciente". Son aquellos paquetes que escribes en la línea de comandos de emerge, siempre que no se use la opción --oneshot|-1.

Lo de consciente... cuando instalé el Gentoo al principio me dieron mil errores (entre otras cosas porque en lugar de haberlo hecho de una forma limpia utilice un LiveCD que no debería haber usado... pero en fin ya está hecho)... y cuando intentaba solucionar esos errores emergi muchos paquetes y dependencias a mano porque el emerge se quejaba sin añadir el OneShot... por eso me imagino que tengo instaladas cosas que no deberían estar...

Me había preguntado si había alguna herramienta que de dijese si esto o aquello debe o no estar... pero me imagino que no debe ser fácil crear una herramienta para saber si uno aunque instala a propósito un paquete lo está haciendo de una forma consciente o no...

Quizás lo que pruebe es a echar un vistazo a world y ver que paquetes no me suenan... quitarlos a mano del archivo y luego pasar el rev-dep rebuild y el -emerge -va --depclean +revdep-rebuild a ver que pasa... Eso si saco tiempo para dedicarle porque me imagino que me puedo cargar muchas cosas... que luego me tocará reparar...

Un saludo

PD: En esta vida he muchas cosas de forma "consciente" sin ser realmente "consciente" de lo que hacía... firmar hipoteca... casarme... ser papa... instalar Gentoo  :Smile: 

----------

## i92guboj

 *will198 wrote:*   

> Hola a todos,
> 
> En world se anotan los paquetes que tú instalas de formas (digámoslo así) "consciente". Son aquellos paquetes que escribes en la línea de comandos de emerge, siempre que no se use la opción --oneshot|-1.
> 
> Lo de consciente... cuando instalé el Gentoo al principio me dieron mil errores (entre otras cosas porque en lugar de haberlo hecho de una forma limpia utilice un LiveCD que no debería haber usado... pero en fin ya está hecho)... y cuando intentaba solucionar esos errores emergi muchos paquetes y dependencias a mano porque el emerge se quejaba sin añadir el OneShot... por eso me imagino que tengo instaladas cosas que no deberían estar...
> ...

 

Ese es el problema. Si tú instalas un paquete usando "emerge <paquete>" el sistema no tiene forma de saber si lo estás haciendo porque tienes un interés directo en ese paquete o por alguna otra razón. Emerge asume que si emerges un paquete es porque dicho paquete en cuestión te va a ser útil. No sería lógico que --depclean desinstalara los paquetes que tú mismo has instalado a mano.

 *Quote:*   

> 
> 
> Quizás lo que pruebe es a echar un vistazo a world y ver que paquetes no me suenan... quitarlos a mano del archivo y luego pasar el rev-dep rebuild y el -emerge -va --depclean +revdep-rebuild a ver que pasa... Eso si saco tiempo para dedicarle porque me imagino que me puedo cargar muchas cosas... que luego me tocará reparar...

 

El proceso sería más o menos ese. En primer lugar, ejecuta emerge --depclean --ask, no debería reportar ningún paquete para desinstalar. Si lo hace, soluciona eso primero.

Una vez que el listado de --depclean sea limpio puedes comenzar a editar el fichero world. Elimina los paquetes uno a uno, y en cada paso guarda el fichero y corre --depclean. Si hay paquetes listados revisa la lista y si no son paquetes en los que tengas un interés directo desinstálalos. Repite el proceso hasta que world esté tan limpio como tú creas que debe estar. 

No hace falta decir que antes de tocar ficheros de importancia siempre hay que hacer una copia de seguridad.

----------

## upszot

Hola gente... bueno respondo entre lineas....

 *i92guboj wrote:*   

> 
> 
> ```
> [I--] [  ] dev-lang/python-2.4.6 (2.4)
> 
> ...

 

unmergie las versiones de python siguiendo los pasos que me dijo "i92guboj"  ... cuando termino ejecute esto para ver que haya quedado todo ok...

```
M1530 upszot # eselect python list

Available Python interpreters:

  [1]   python2.6 *

M1530 upszot # python-updater

 * Couldn't determine any previous Python version(s).

 * Use -o OLD_PYTHON_VERSION to specify your old python version.

M1530 upszot # 
```

obiamente ahora no hay una version mas vieja (pq quedo una sola... la 2.6)... asiq calculo que esto esta bien y no hay que darle bola al mensaje...

 *i92guboj wrote:*   

> 
> 
> ```
> 
> [I--] [  ] media-libs/jpeg-6b-r9 (62)
> ...

   nunca instale nada con esa opcion... siempre trate de mantener el sistema lo mas limpio posible aun hace 1 año atras cuando recien empece con gentoo... y si por lo que vi como puse arriba hay una version que depende de la mas baja... (de todas formas, se me hace raro que no haya compatibilidad hacia arriba, y que se clave con una version vieja.... pero bueno la dependencia es un binario... asique despues voy a probar de quitarla y compilar el navegador a ver si cambia la dependencia...)

 *i92guboj wrote:*   

> 
> 
> ```
> [I--] [  ] sys-devel/autoconf-2.13 (2.1)
> 
> ...

 

Lo de autotools y esto no lo entendi muy bien... lei de que se trata autotools de "http://es.wikipedia.org/wiki/GNU_build_system" y aca "http://www.gentoo.org/doc/es/articles/autotools-practices.xml" ....y si te entendi bien....

( un paquete echo con autotools siempre va a necesitar de que tenga instalado la version que se utilizo para realizarlo???) ... si es asi.... con el tiempo tendriamos muchisimas versiones de autotools y sys-libs/db duplicadas en nuestros ordenadores... lo cual me parece una gran @#$%^& jeje... 

  habra alguna forma de recrear los paquetes generados con la version mas nueva de la herramienta de forma de eliminar la dependencia con un dinosaurio?.....

.... o esto no es asi y efectivamente entendi mal...?

 *i92guboj wrote:*   

> 
> 
> ```
> 
> [I--] [  ] sys-devel/gcc-4.1.2 (4.1)
> ...

 

al listar las versiones obtengo esto...

```
M1530 upszot # gcc-config -l

 [1] i686-pc-linux-gnu-4.1.2

 [2] i686-pc-linux-gnu-4.3.3 *

 [3] i686-pc-linux-gnu-4.4.3 
```

como hago para cambiar la version activa y elegir la 3?? calculo que con "eselect" pero eselect que?...

 *i92guboj wrote:*   

> 
> 
> De forma ideal, en un sistema sano "emerge --ask --depclean" no debería reportar nada para desinstalar.

 

con respecto a este ultimo punto... no se si tiene sentido postiar algo ahora sin haber antes terminado con los anteriores.... pero bueno ejecute el "emerge -a --depclean"  y me tira variosss paquetes....

Edit: ... pero bueno de todas formas dejo la lista... http://pastebin.com/73tcfkDn

ahh y aprobecho a consultar...  yo tengo instalas 3 kernels distintos... por lo que vi trata de limpiarlos y dejarme el ultimo... (cosa que no quiero.. pq esa tarea la hago yo a mano cuando lo determine apropiado)... 

como hago para que el --depclean no me los quiera quitar?? ...

saludos

----------

## pelelademadera

gcc-config i686-pc-linux-gnu-4.4.3

eselect python set 1/2/3 el que quieras

automake y demas, no las elimines...

----------

## upszot

 *pelelademadera wrote:*   

> gcc-config i686-pc-linux-gnu-4.4.3
> 
> eselect python set 1/2/3 el que quieras
> 
> automake y demas, no las elimines...

 

gracias pelela...

```
M1530 upszot # gcc-config i686-pc-linux-gnu-4.4.3 

 * Switching native-compiler to i686-pc-linux-gnu-4.4.3 ...

>>> Regenerating /etc/ld.so.cache...                                                                                                                                       [ ok ]

 * If you intend to use the gcc from the new profile in an already

 * running shell, please remember to do:

 *   # source /etc/profile

M1530 upszot # gcc-config -l

 [1] i686-pc-linux-gnu-4.1.2

 [2] i686-pc-linux-gnu-4.3.3

 [3] i686-pc-linux-gnu-4.4.3 *

M1530 upszot # 
```

y despues de eso unmergie las versiones viejas....

----------

## pelelademadera

chequeaste que funcione todo? siempre recomiendan un emerge -e system && emerge -e world....

es una fiaca, pero eso te va a asegurar no tener problemas con lo que tengas compilado

----------

## i92guboj

 *upszot wrote:*   

> ....y si te entendi bien....
> 
> ( un paquete echo con autotools siempre va a necesitar de que tenga instalado la version que se utilizo para realizarlo???) ... si es asi.... con el tiempo tendriamos muchisimas versiones de autotools y sys-libs/db duplicadas en nuestros ordenadores... lo cual me parece una gran @#$%^& jeje... 
> 
>   habra alguna forma de recrear los paquetes generados con la version mas nueva de la herramienta de forma de eliminar la dependencia con un dinosaurio?.....
> ...

 

La forma de arreglarlo sería modificar el sistema de construcción de los paquetes, uno por uno, lo cual no siempre es trivial. O bien hacer las cosas de forma más elegante y directamente migrar a algo como cmake o cualquier alternativa. En cualquier caso, es algo que requiere modificar los fuentes de los paquetes, uno por uno, y si los cambios no son aceptados "upstream", implicaría mantenerlos de forma indefinida. Gentoo no puede hacer eso, y la alternativa es mucho más simple: instalar todas las versiones de automake necesarias.

 *Quote:*   

> ahh y aprobecho a consultar...  yo tengo instalas 3 kernels distintos... por lo que vi trata de limpiarlos y dejarme el ultimo... (cosa que no quiero.. pq esa tarea la hago yo a mano cuando lo determine apropiado)... 
> 
> como hago para que el --depclean no me los quiera quitar?? ...
> 
> saludos

 

Yo, personalmente, compilo mis kernel en $HOME y los instalo a mano, me resulta más cómodo, y así puedo aplicar los parches que yo quiera (y solo esos). En cualquier caso, ten en cuenta que lo que --depclean elimina son las fuentes, que es lo que se instala con el paquete. --depclean no borrará tu kernel de /boot, ni los módulos almacenados en /lib/modules/, así que podrás seguir usando dichos kernels aunque las fuentes estén desinstaladas.

----------

## gringo

 *Quote:*   

> Nunca me ha ocurrido. Seguro que hay una explicación lógica, lo difícil va a ser encontrarla. Yo empezaría registrando los logs, a ver cuando y como se instalan los paquetes involucrados. 

 

pues a mi ya me ha ocurrido un par de veces y en máquinas distintas, los dos que menciono ( gtk+ y luit) son bastante comunes p.ej.

Supongo que hago algo mal, ya se sabe, la mayoría de los "errores" como estos son fallo humano. 

 *Quote:*   

> De regenworld no tengo ni idea. Rara vez lo he usado.

 

emaint dice que todo está bien en el world, yo simplemente lo ejecutaba para ver si me había colao y había eliminao algún paquete que no debiera.

perdón por el OT.

saluetes

----------

