# Limpiar /var/lib/portage/world (cerrado)

## the incredible hurd

Hace poco leí en un mensaje...

 *Stolz wrote:*   

> 
> 
> Ojo que ese "emerge orbit" te habrá metido a orbit en el fichero world y es algo que probablemente no quieras. Coghan te recomendaba usar el parámetro -1 por algo. Mantener el fichero world limpio desde el principio es algo que hará que tu las actualizaciones con "emerge -u world" sean más ligeras. Lo recomendable es que el fichero world contenag solo los programas que realmente necesiats en tu sistema, no sus dependencias.
> 
> 

 

y me ha parecido verlo últimamente en más mensajes, si no recuerdo mal uno de ellos era de Cereza.

Mucho me temo que yo no tuve esa precaución desde el principio, y ahora mi fichero world contiene 591 paquetes y me temo que muchos de ellos son dependencias.

¿Existe alguna forma automatizada de comprobar cuáles son dependencias y cuáles los programas que las generan?

Me he propuesto definitivamente limpiar mi fichero world, pero no se me ocurre ninguna forma para obtener los resultados correctos y editarlo a mano es algo que no me atrevo a hacer de momento...

----------

## Stolz

jeje, hace poco di una explicación un poco más extensa en este hilo. Una forma automatizada creo que no existe. Está el comando regenworld, pero se basa el leer los logs de emerge y si ya has seguido una práctica inadecuada volver a generar el archivo con los logs causados por la misma práctica imagino que dará el mismo resultado. Yo lo haría a mano. Deja solo los programas que sabes lo que son (o mejor dicho que usas frecuentemente y que te resulta importante tenerlos siempre actualizados). Si no te quieres leer la lista completa de 500 líneas, empieza de cero y añade los programas que te vengan a la memoria. Si olvidas alguno siempre podrás ir completándolo luego poco a poco. Yo por ejemplo tengo muchos paquetes que sé lo que son y uso frecuentemente pero no me resulta vital estar siempre a la última en sus versiones y por eso no las tengo metidas en el fichero world. Tampoco hay que obsesionarse con que el archivo sea todo lo pulcro que se puede, simplemente hay que procurar acordarse de usar --oneshot cuando toca.

Saludozzzzzzz

----------

## Cereza

 *Stolz wrote:*   

> Si no te quieres leer la lista completa de 500 líneas, empieza de cero y añade los programas que te vengan a la memoria. Si olvidas alguno siempre podrás ir completándolo luego poco a poco. Yo por ejemplo tengo muchos paquetes que sé lo que son y uso frecuentemente pero no me resulta vital estar siempre a la última en sus versiones y por eso no las tengo metidas en el fichero world

 

Yo también creo que lo mejor sería ir creandolo de cero, pero, si te dejas alguno, el comando emerge --depclean lo fumigará, y esto esto es algo que yo uso mucho para mantener mi instalación limpia seguido de revdep-rebuild. Pero puedes usar esto a tu favor, puedes tener tu archivo world abierto en tu editor de texto e ir creandolo de cero, y mientras en una terminal ir haciendo emerge depclean -p, un vistazo a la lista de paquetes que pretende desinstalar y vas añadiendo a world los que no quieres perder, que sabes lo que son y que usas como ha dicho Stolz.

Saludos.

----------

## i92guboj

La verdad, no recuerdo si había forma automática de limpiarlo, pero, en principio, todo lo referente a paquetes dev, lib, y similares jamás se debe instalar a mano, sino como dependencia (a no ser que estés desarrollando un programa que necesite dichos paquetes, claro está).

Eso sería un punto de partida para limpiar el fichero world. En cualquier caso, si lo vas a limpiar a mano, hazlo paso y paso, y haz backups conforme lo vas cambiando y ve probando con emerge -auDvN world en cada paso para ver si hay algún problema.

----------

## ekz

Ayuda también equery depends categoría/paquete, si devuelve que es dependencia de algún programa conocido (y que debería estar en el world) es porque no hay necesidad de que siga estando en el world.

Aprovecho también de limpiar el mío, hace tiempo lo limpíe de las librerías y ahora leyendo la respuesta de i92, lo haré de los paquetes "dev"

Saludos!

----------

## the incredible hurd

 *ekz wrote:*   

> Ayuda también equery depends categoría/paquete, si devuelve que es dependencia de algún programa conocido (y que debería estar en el world) es porque no hay necesidad de que siga estando en el world.

 

Lamentablemente eso jamás ocurre, porque equery depends categoría/paquete devuelve los paquetes que dependen de categoría/paquete y es incapaz de devolver que categoría/paquete sea dependencia de otra cosa. Lo cual lo convertiría en un puzzle gigantesco, ni quiero pensar en la combinatoria, creo que resultaría en 591! o 591 factorial, no dispongo de vida suficiente como para hacerlo de ese modo...

Lo primero en lo que pensé fue equery, pero el depgraph me resulta insondable y depends hace justo lo contrario a lo que necesito para limpiar world.

Gracias i92guboj por tus dos excelentes pistas, serán mi punto de partida... Y los backups de world es algo que hago desde el primer día, pero está bien que quede expresado en el hilo (regenworld por ejemplo me añadió 16 paquetes más).

Iré paso a paso y uno por uno, aunque es cuestión de hacer un script que lo automatice todo, copias de seguridad de wolrd incluídas.

----------

## gringo

udept y algunas herramientas de los portage-utils a mi me sirvieron la última vez que hice limpieza a mano en el world. Igual quieres echarle un vistazo.

saluetes

----------

## pacho2

Yo me limito a editarlo manualmente con un editor de texto (en mi caso joe  :Wink: ). Habitualmente lo que está en categorías como media-libs, dev-perl... suelen ser dependencias...

----------

## ekz

Me refería a usarlo de esta forma, por ejemplo:

```
 equery depends dev-python/dbus-python
```

Me devuelve:

```
media-sound/sonata-1.4.2 (dbus? dev-python/dbus-python)

net-im/pidgin-2.4.0 (dbus? >=dev-python/dbus-python-0.71)

```

Que son mi cliente de mensajería y reproductor de música, por lo que dev-python/dbus-python no debería estar por ningún motivo en world, ya que es dependencia (y de 2 paquetes que si están en world).

Bueno tampoco digo que sea algo automatizado, pero para paquetes que no me suenan para nada me aclara si sólo están estorbando o están instalados innecesariamente.

Saludos!

----------

## the incredible hurd

Muchas gracias gringo, las portage-utils tienen qdepends que puede ayudar mucho, pero udept es extraordinario, justo la forma automatizada que buscaba:

```
dep --pruneworld
```

Lo ha hecho todo, es alucinante la cantidad de mensajes !!!REDUNDANT ENTRY!!! que me han aparecido:

 *Quote:*   

> 
> 
> 592 packages in world:  289 valid,  303 redundant;
> 
> 57 packages in system;
> ...

 

```

cat /mnt/backup/world | wc -l

591

cat /var/lib/portage/world | wc -l

289

```

Sin comentarios.

```
dep --filter-etc-portage
```

 también es extraordinario para actualizar todo /etc/portage, quitar todo aquello que tengamos en package.keywords o package.mask que ya no exista o esté actualizado y ya no necesite keywords.

Cierro el hilo.

----------

## pacho2

No lo conocía, voy a probarlo

Gracias

----------

## Inodoro_Pereyra

```
103 packages in world:  84 valid,  19 redundant;

52 packages in system;

704 packages installed: 7% in system, 14% in world, 80% deps.
```

Yo tampoco lo conocía... Espectacular. [nota mental]Prestar mas atención a las recomendaciones de Gringo[/nota mental].

Y yo que creía que lo tenía bastante bien mantenido a mi world... jeje.

Salud!

----------

## gringo

un aviso de todas formas : dep es una herramienta vieja y que yo sepa ya no se desarolla. Así que al loro que no os haga una barrabasada con el world  :Wink: 

saluetes

----------

## achaw

Cada dia me gusta mas este foro...  :Very Happy: 

Saludos

----------

