# [Portage] Paquetes con varias versiones instaladas (abierto)

## pcmaster

En vista de lo publicado en este hilo:

https://forums.gentoo.org/viewtopic-t-578591.html

(haciendo carreras a ver quién obtiene la lista de paquetes más rápido  :Very Happy:   :Very Happy:   :Very Happy:  )

He obtenido la lista de los paquetes de mi sistema. Varios paquetes tienen varias versiones instaladas, algunos de ellos creo yo que de forma innecesaria. Teniendo en cuenta que el equery list ha dado un resultado de 832 líneas (831 paquetes porque la primera línea pone  * installed packages) y que recientemente un emerge world recompiló unos casi 800 paquetes, conviene hacer una pequeña limpieza de paquetes instalados de forma innecesaria.

En aquellos en los que no podía romper nada, he desinstalado la más antigua, como por ejemplo libosip, que tenía instaladas las versiones 0.9.7 y 2.2.1. De hecho este paquete me parece que está de adorno (había instalado un aplicación SIP que ya no uso) pero bueno. No sé si otro paquete lo necesitará, pero ahora sólo hay una versión, la última. Si algún otro paquete necesita otra versión, siempre puede reinstalarse.

Pero hay otros paquetes que no me atrevo a tocar. Dejando de lado las innumerables versiones de paquetes como automake, que deben dejarse, hay otros con los que tengo dudas:

glib-1.2.10-r5 y glib-2.12.13

gtk+: tenga instaladas las versiones 1.x y 2.x. He intentado desinstalar la 1.x y quedarme solamente con la versión 2, pero siempre hay algún paquete que necesita la antigua 1.x y la reinstala como dependencia.

python-2.3.5-r3 y python-2.4.4-r4 (este lo considero especialmente delicado, porque el mismísimo emerge es un script de python, y no me apetece en absoluto fastidiarlo).

sys-libs/db: este paquete ya es demasiado. Están instaladas las versiones 1.8.5-r3, 4.0.14-r3, 4.1.25_p1-r4, 4.2.52_p4-r2, 4.3.29-r2 y 4.5.20_p2 ¿realmente hacen falta todas?

docbook-*: instaladas varias versiones de cada paquete. De unos hay 3 versiones, de otros 4...

¿Cómo puedo saber si son necesarias todas las versiones instaladas del mismo paquete?

Con paquetes como automake, al al emerger otros paquetes, se van instalando cada vez más versiones del mismo paquete, en diferentes slots, de vez en cuando actualiza alguna de ellas, pero, cuando el paquete instalado en uno de los slot ya no sea necesario, ¿se elimina automáticamente?

----------

## gringo

 *Quote:*   

> gtk+: tenga instaladas las versiones 1.x y 2.x. He intentado desinstalar la 1.x y quedarme solamente con la versión 2, pero siempre hay algún paquete que necesita la antigua 1.x y la reinstala como dependencia. 

 

hay bastantes paquetes que no soportan gtk-2.x, que yo recuerde ahora mismo ppp o transcode, pero seguro que hay alguno mas, así que si tienes esos paquetes con el use gtk necesitarás la versión gtk-1.x. Mira los ebuilds de los paquetes para salir de dudas.

 *Quote:*   

> python-2.3.5-r3 y python-2.4.4-r4 (este lo considero especialmente delicado, porque el mismísimo emerge es un script de python, y no me apetece en absoluto fastidiarlo). 

 

tu mismo, yo sólo tengo la nueva 2.5.x despues de la última actualización.

 *Quote:*   

> sys-libs/db: este paquete ya es demasiado. Están instaladas las versiones 1.8.5-r3, 4.0.14-r3, 4.1.25_p1-r4, 4.2.52_p4-r2, 4.3.29-r2 y 4.5.20_p2 ¿realmente hacen falta todas? 

 

me temo que si y lo mismo ocurre para los docbook-*.

 *Quote:*   

> ¿Cómo puedo saber si son necesarias todas las versiones instaladas del mismo paquete? 

 

man equery ( depends y depgraph serán lo que buscas) y si tienes paludis man paludis ( --show-reasons full p.ej. )  :Wink: 

 *Quote:*   

> Con paquetes como automake, al al emerger otros paquetes, se van instalando cada vez más versiones del mismo paquete, en diferentes slots, de vez en cuando actualiza alguna de ellas, pero, cuando el paquete instalado en uno de los slot ya no sea necesario, ¿se elimina automáticamente?

 

me temo que no. 

saluetes

----------

## Annagul

 *gringo wrote:*   

> 
> 
>  *Quote:*   Con paquetes como automake, al al emerger otros paquetes, se van instalando cada vez más versiones del mismo paquete, en diferentes slots, de vez en cuando actualiza alguna de ellas, pero, cuando el paquete instalado en uno de los slot ya no sea necesario, ¿se elimina automáticamente? 
> 
> me temo que no. 
> ...

 

¿Y 

```
emerge -p --depclean
```

no se encargaría de revisar dependencias huérfanas, incluyendo dependencia de versiones? 

Un ejemplo: desinstalo el paquete X, que dependia de =categoria/foo-1. En mi sistema también tengo =categoria/foo-1.5, pero depende de otro paquete en world (pongamos, Z) Al ejecutar el comando anterior, esta dependencia (foo-1) se mostraría suelta y emerge la propondría eliminar, pero protegería a foo-1.5, ya que es necesario para Z.

De esta manera, tendríamos nuestro sistema con paquetes instalado únicamente en SLOTS necesarios. ¿Cierto?

----------

## gringo

 *Quote:*   

> no se encargaría de revisar dependencias huérfanas, incluyendo dependencia de versiones? 

 

si, pero no es automático, que era lo que se preguntaba  :Wink: 

saluetes

----------

## Darksidex25

 *pcmaster wrote:*   

> 
> 
> python-2.3.5-r3 y python-2.4.4-r4 (este lo considero especialmente delicado, porque el mismísimo emerge es un script de python, y no me apetece en absoluto fastidiarlo).
> 
> 

 

Prueba con python-updater

----------

## pcmaster

Hola, 

Visto el comentario del comapñero más arriba, miré los ebuilds y vi que portage usaba la versión más moderna. Así que eliminé la antigua y sin problemas.

----------

## i92guboj

 *Darksidex25 wrote:*   

>  *pcmaster wrote:*   
> 
> python-2.3.5-r3 y python-2.4.4-r4 (este lo considero especialmente delicado, porque el mismísimo emerge es un script de python, y no me apetece en absoluto fastidiarlo).
> 
>  
> ...

 

No hay peligro ninguno si se siguen los consejos que te da al final de emerger python 2.5.

Usa python-updater como Darksidex25 comenta y como el mismo ebuild te dice. Recompilará una lista larga de paquetes. Tras eso, emerge --ask --depclean debería limpiar tu sistema de todo lo que no sirva.

Aparte de eso, dale un repaso a tu /var/lib/portage/world.

Todo lo que suene a librería no debería estar ahí, porque las librerías de por sí solas no sirven para nada a no ser que estés usándolas para desarrollar. Están ahí de las veces que las emerges y olvidas el --oneshot. Lo demás, lo repasas también y lo que no quieras lo quitas.

Tras retocar el fichero world, un simple --depclean lo limpiará todo. Eso sí, revísalo antes, porque si eliminas cosas que no debas tendrás que tirarte algunas horas para recompilarlas  :Razz: 

----------

## pcmaster

 *i92guboj wrote:*   

> 
> 
> Aparte de eso, dale un repaso a tu /var/lib/portage/world.
> 
> Todo lo que suene a librería no debería estar ahí, porque las librerías de por sí solas no sirven para nada a no ser que estés usándolas para desarrollar. Están ahí de las veces que las emerges y olvidas el --oneshot. Lo demás, lo repasas también y lo que no quieras lo quitas.
> ...

 

jeje, pues hay unas cuantas:

```
# cat /var/lib/portage/world|grep lib

sys-libs/gdbm

media-libs/taglib

net-libs/gnutls

media-libs/libsdl

net-dns/libidn

sci-libs/fftw

media-libs/libpng

dev-libs/libIDL

media-libs/rte

net-libs/libsoup

media-libs/smpeg

media-libs/ftgl

dev-libs/xplc

media-libs/urt

sys-libs/pwdb

dev-libs/atk

x11-libs/fox

media-libs/exiftool

sys-libs/com_err

media-libs/ladspa-sdk

media-libs/libid3tag

x11-libs/libXft

x11-libs/vte

media-libs/freealut

dev-libs/gmp

media-libs/libao

media-libs/audiofile

dev-libs/cdk

media-libs/lcms

media-libs/gstreamer

x11-libs/pango

media-libs/musicbrainz

media-libs/tiff

x11-libs/startup-notification

dev-libs/libtasn1

sys-libs/ss

x11-libs/libXext

gnome-base/librsvg

media-libs/flac

sys-devel/libperl

media-libs/xine-lib

x11-libs/fltk

dev-libs/pth

dev-games/clanlib

app-emulation/libspectrum

media-libs/mesa

media-libs/freetype

media-libs/gst-plugins

dev-libs/expat

media-libs/openal

xfce-base/libxfce4mcs

xfce-base/libxfcegui4

sys-libs/libutempter

media-libs/jbigkit

dev-libs/libassuan

media-libs/libmatroska

gnome-extra/libgsf

dev-libs/libcdio

x11-libs/qt

net-libs/libpcap

media-libs/sdl-image

media-libs/mpeg-lib

media-libs/svgalib

gnome-base/libghttp

x11-libs/wxGTK

media-libs/gd

sys-libs/gpm

media-libs/sdl-sound

dev-libs/openssl

net-libs/enet

media-libs/sdl-gfx

media-libs/fontconfig

dev-libs/libcroco

dev-libs/libgpg-error

dev-libs/libksba

dev-perl/libintl-perl

sys-libs/pam

dev-libs/cyrus-sasl

dev-libs/libxml2

dev-libs/libusb

sys-libs/db

media-libs/libmpeg3

media-libs/libmpeg2

dev-libs/libxml

media-libs/faad2

media-libs/a52dec

media-libs/libexif

media-libs/libdv

media-libs/libmng

media-libs/libmad

x11-libs/cairo

media-libs/libdvdcss

dev-libs/lzo

media-libs/imlib2

media-libs/libdts

media-libs/jpeg

dev-libs/libebml

x11-libs/gtkglarea

sys-libs/slang

media-libs/libogg

sys-libs/timezone-data

x11-libs/gtk+

sys-libs/cracklib

media-libs/libexif-gtk

media-libs/alsa-lib

media-libs/glut

media-libs/id3lib

media-libs/giflib

gnome-base/libglade

media-libs/libgphoto2

media-libs/libmp4v2

media-libs/sdl-mixer

xfce-base/libxfce4util

dev-libs/libpcre

x11-libs/libX11

sys-libs/lib-compat

dev-libs/libxslt

dev-libs/dbh

dev-libs/glib

sys-libs/glibc

x11-libs/openmotif

media-libs/libquicktime

media-libs/libmikmod

media-libs/win32codecs

media-libs/jasper

media-libs/libmovtar

media-libs/libfame

media-libs/xvid

media-libs/libdvdread

net-libs/liblockfile

media-libs/netpbm

dev-libs/pwlib

kde-base/kdelibs

media-libs/faac

dev-libs/libgcrypt

media-libs/libart_lgpl

app-doc/chmlib

net-libs/wvstreams

media-libs/libvorbis

media-libs/imlib

```

Hice un regenworld, no sé si tendrá algo que ver y será el que las ha metido todas ahí.

----------

## pcmaster

Pues sí.

Borro del archivo world todas las líneas que contengan lib y al hacer un regenworld las vuelve a meter.

----------

## pcmaster

He quitado del archivo world todas las líneas que eran librerías (guardando una copia por si acaso). He hecho un emerge --depclean y ha desinstalado unos 75 paquetes. Después, un revdep-rebuild ha encontrado algunos errores y ha recompilado unos 8 paquetes (no ha instalado ninguno nuevo).

Un segundo revdep-rebuild ya no ha encontrado errores.

----------

## Coghan

Te falta hacer un 

```
emerge -upvDN world
```

para saber si quedan dependencias por instalar.

----------

## pcmaster

El emerge -upvDN world me dice que solamente reinstalaría openoffice:

```
AthlonXP ~ # emerge -upvDN world

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

Calculating world dependencies... done!

[ebuild   R   ] app-office/openoffice-bin-2.2.1  USE="-gnome -java -kde" LINGUAS="es -af -as_IN -be_BY -bg -br -bs -ca* -cs -cy -da -de -dz -el -en -en_GB -en_ZA -eo -et -fa -fi -fr -ga -gl -gu_IN -he -hi_IN -hr -hu -it -ja -km -ko -ku -lt -mk -ml_IN -mr_IN -nb -ne -nl -nn -nr -ns -or_IN -pa_IN -pl -pt -ru -rw -sh_YU -sk -sl -sr_CS -ss -st -sv -sw_TZ -ta_IN -te_IN -tg -th -ti_ER -tn -tr -ts -uk -ur_IN -ve -vi -xh -zh_CN -zh_TW -zu" 0 kB 

Total: 1 package (1 reinstall), Size of downloads: 0 kB

AthlonXP ~ #

```

aunque es por los LINGUAS, y eso que en /etc/portage/package.use tengo:

app-office/openoffice-bin linguas_es linguas_ca

pero no le hace ni caso

----------

## Coghan

Pues, parece que ya deberías tener un sistema limpito, limpito. Asustas un poco.   :Shocked: , ¿paracaidismo si el de reserva no hacer verdad?   :Laughing: 

Con respecto al openoffice yo agrego la variable LINGUAS="es es_ES" al make.conf de esta forma se quedan configurados la mayoría de los programas  i18n.

----------

## pcmaster

Pues yo no sé qué le pasa, que aunque ponga en el /etc/make.conf:

LINGUAS="es es_ES ca ca_ES"

después

```
# emerge -pv openoffice-bin

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

Calculating dependencies... done!

[ebuild   R   ] app-office/openoffice-bin-2.2.1  USE="-gnome -java -kde" LINGUAS="es -af -as_IN -be_BY -bg -br -bs -ca* -cs -cy -da -de -dz -el -en -en_GB -en_ZA -eo -et -fa -fi -fr -ga -gl -gu_IN -he -hi_IN -hr -hu -it -ja -km -ko -ku -lt -mk -ml_IN -mr_IN -nb -ne -nl -nn -nr -ns -or_IN -pa_IN -pl -pt -ru -rw -sh_YU -sk -sl -sr_CS -ss -st -sv -sw_TZ -ta_IN -te_IN -tg -th -ti_ER -tn -tr -ts -uk -ur_IN -ve -vi -xh -zh_CN -zh_TW -zu" 0 kB 

Total: 1 package (1 reinstall), Size of downloads: 0 kB

```

y eso que en /etc/portage/package.use tengo:

app-office/openoffice-bin linguas_es linguas_ca

Esto último lo saqué de otro hilo donde alguien comentaba que sí le funcionaba.

----------

## Coghan

Parece que te está quitando el catalán, ¿has probado a hacer? 

```
env-update && source /etc/profile
```

después de modificar el make.conf y antes de hacer el emerge -pv

----------

## pcmaster

Creo que encontré el fallo.

Tenía la variable LINGUAS puestra en las variables de entorno, (las ajustaba al poner el locale) y al parecer si está puesta hace caso omiso de lo que haya tanto en /etc/make.conf como de lo que haya en /etc/portage/package.use.

La solución:

# unset LINGUAS

y quitarlo del archivo que ajusta el locale, claro.

 :Wink: 

----------

## Niltsiar

 *gringo wrote:*   

> 
> 
>  *Quote:*   sys-libs/db: este paquete ya es demasiado. Están instaladas las versiones 1.8.5-r3, 4.0.14-r3, 4.1.25_p1-r4, 4.2.52_p4-r2, 4.3.29-r2 y 4.5.20_p2 ¿realmente hacen falta todas?  
> 
> me temo que si y lo mismo ocurre para los docbook-*.
> ...

 

Personalmente no hace mucho yo también he estado de limpieza de dependencias y demás, y de sys-libs/db me he quedado con la última versión sólo y tras hacer un revdep-rebuild todo ha ido perfectamente, todos los paquetes que estaban enlazados con versiones antiguas de db se han recompilado bien con la 4.5.20_p2.

```

eix sys-libs/db

[I] sys-libs/db

     Available versions:  

        (1)     *1.85-r1 1.85-r3

        (3)     3.2.9-r10 3.2.9-r11

        (4.2)   4.2.52_p4-r2

        (4.3)   4.3.29-r2

        (4.4)   ~4.4.20_p4

        (4.5)   4.5.20_p2

        (4.6)   [M]~4.6.19

     Installed versions:  4.5.20_p2(4.5)

     Homepage:            http://www.oracle.com/technology/software/products/berkeley-db/index.html

     Description:         Oracle Berkeley DB

```

Por si hay alguien que no lo conozca app-portage/udept puede ser bastante útil para encontrar dependencias innecesarias.

Saludos

----------

