Hace no mucho se habl� aqu� de que cuando se desinstalan programas
es posible que queden librer�as que ya no son necesarias ocupando
espacio.

Voy a poner aqu� fragmentos de unos cuantos mensajes de
es.comp.os.linux porque creo que pueden ser interesantes.


(Sobre el apt)
[ Yo ]
De todos modos lo acabo de probar y realmente est� muy bien, pero
le veo dos pegas:
- si instalo desde el cdrom �porqu� diablos me copia los paquetes
a /var/cache/apt/archives?
- est� claro que los programadores lo han hecho pensando en
facilitar la instalaci�n, pero y la desinstalaci�n �qu�? En un
instante te puedes instalar el gnome por ejemplo, pero para
desinstalarlo tienes que ir buscando todos los paquetes que ha
instalado.

(En otro thread)
[ RVM, o sea yo]
> De todos modos es una l�stima que ning�n gestor de paquetes tenga
> ninguna opci�n para recordarle al usuario las librer�as
> instaladas y que no est� usando ning�n programa.

[ *Puntero_Loco ]
Muy sencillo, si est�s en debian te vas al dselect, prueba a marcar
un
paquete de librer�as para desintalaci�n, y si no te sale ninguna
pantalla de advertencia es que nada usa esas librer�as.

[ Yo ]
Hue-Bond hizo un script que muestra los paquetes que no tienen
dependencias con ning�n otro, pero... imaginaros esto:

dpkg --purge gimp
Reading database...
Purging package gimp....
The following packages are not needed anymore:
gimp-nonfree
freefonts
libtal1.1
libytal2.4
...
would you like to purge them too?
yes
Purging...
Ok. 11532 files erased. 25643 Kb disk space freed.

[ Salvador Petit Marti ]
>>[...]
>La idea es buena, pero �como sabe la m�quina si esos paquetes te
>interesan por si mismos?. Quiz�s seria interesante saber cuales
son tus
>paquetes "hoja" (aquellos de los que no depende ningun otro, y
que se
>encuentran en los extremos del arbol de dependencias) pues estos
son los
>que tienes porque quieres (no porque te obliga el apt). �El
script de
>Hue-Bond detectaba estos?

[ Yo, otra vez ]
S�, pero no es tan sencillo, porque entre esos paquetes "hoja"
hay muchos que son necesarios, adem�s imag�nate este caso: entre
el listado de paquetes que puedes desinstalar sale el
gnome-panel. Vale voy y lo desinstalo. Si vuelvo a ejecutar otra
vez el script ahora aparecer�n unas cuantas librer�as que ya no
necesita ning�n otro paquete (antes el gnome-panel depend�a de
ellas).
Lo malo es que al ser un script es lento. La debian lleva un
paquete llamado pkg-order que muestra el �rbol de dependencias
pero al estar hecho en perl tambi�n es lento.

En los �ltimos d�as he estado incluso pensando en hacer yo mismo
un programa que hiciera este tipo de desinstalaciones, pero lo
malo es que no s� como obtener de una forma sencilla en C o C++
la lista de dependencias de un paquete instalado. De todas formas
contar� el algoritmo (ojo, que puede no ser correcto) que ten�a
pensado por si alguien con m�s conocimientos de programaci�n que
yo se anima:

Al programa se le pasar�a como par�metro el paquete base a
desinstalar. El objetivo del programa es averiguar la lista de
paquetes que quedar�an libres (que ning�n otro paquete dependiera
de ellos).

1) Comprobar si alg�n otro paquete instalado depende del paquete
que se pretende desinstalar. Si es as� no hay nada que hacer.

2) Meter el paquete y su lista de dependencias en una lista
(provisional) de paquetes borrables.

3) Recorrer esta lista desde el principio al final y comprobar si
cada uno de estos paquetes es necesitado por otro paquete
instalado y que no est� en la lista.

4) Si es as� el paquete se borra de esta lista (es decir el
paquete no se desinstalar�).

5) Si no es as� (ning�n otro paquete depende de �l) a�adir sus
dependencias a la lista de paquetes borrables (para m�s tarde
comprobar si alguno de esos paquetes se pueden borrar tambi�n).

Cuando se haya recorrido toda la lista se puede dar el caso de
que alg�n paquete sigue estando en la lista porque otro paquete
que tambi�n estaba en la lista depend�a de �l, pero si embargo al
llegar a �l hemos comprobado de que lo tenemos que quitar de la
lista porque otro paquete fuera de la lista depend�a de este
�ltimo (buf, esto no est� quedando nada claro, no s� si lo
entendereis).

Por este motivo hay que hacer varias pasadas a la lista hasta que
la lista no cambie.

6) Mostrar la lista definitiva en pantalla (o grabarla en un
fichero, o directamente proceder a desinstalar los paquetes de la
lista).

Ricardo Villalba
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://members.xoom.com/rvmsoft
http://rvmsoft.findhere.com

Responder a