Product SiteDocumentation Site

9.4. package-cleanup

Este utilitario provisto por el paquete yum-utils ayuda a detectar problemas en la base de datos rpm y a resolverlos, abajo se listan y muestran algunos usos comunes.
Paquetes huérfanos
Listar los paquetes huérfanos, aquellos paquetes que no son provistos por ninguno de los repositorios configurados, "son huérfanos de repositorio", use la opción --orphans.
$ package-cleanup --orphans 
...
NetworkManager-0.8.9997-1.git20110531.fc15.x86_64
NetworkManager-glib-0.8.9997-1.git20110531.fc15.x86_64
NetworkManager-gnome-0.8.9997-1.git20110531.fc15.x86_64
adobe-release-i386-1.0-1.noarch
control-center-3.0.1.1-6.fc15.x86_64
control-center-filesystem-3.0.1.1-6.fc15.x86_64
cpp-4.6.0-7.fc15.x86_64
dbus-qt-0.70-7.fc12.x86_64
...
Debido a la forma en como se maneja las actualizaciones, package-cleanup sólo considera la última versión del paquete, los paquetes no actualizados pero provistos por repositorios configurados aparecerán como huérfanos, es decir, el repositorio Updates, por ejemplo, no continúa suministrando la versión anterior para efectos de package-cleanup. Es decir, antes de hacer un package-cleanup --orphans, se recomienda hacer una actualización completa si es posible, tenga cuidado de no remover estos paquetes a la ligera, ya que también pueden ser paquetes instalados manualmente y que funcionan perfectamente, o simplemente se deshabilitó el repositorio desde el cual se hizo la instalación.
Paquetes duplicados
Para listar los paquetes con duplicados en la base de datos RPM use la opción --dupes.
$ package-cleanup --dupes 
...
samba-3.2.8-0.27.fc10.i386
samba-3.2.8-0.26.fc10.i386
libtalloc-1.2.0-26.fc10.i386
libtalloc-1.2.0-27.fc10.i386
wireshark-gnome-1.0.6-1.fc10.i386
wireshark-gnome-1.0.5-1.fc10.i386
...
Problemas de dependencias
Para listar los problemas de dependencias en la base de datos RPM use la opción --problems.
$ package-cleanup --problems 
...
Package compiz-0.9.5.92.1-0.2.gite676f1b12eb8db3a76978eed5bfc7c2cf9a0b6ce.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Package compiz-gtk-0.9.5.92.1-0.2.gite676f1b12eb8db3a76978eed5bfc7c2cf9a0b6ce.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Package compiz-plugins-main-0.9.5.92-1.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Package libcompizconfig-0.9.5.92-1.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Felizmente usted no tendrá problemas, lo que esperaría ver es:
$ package-cleanup --problems
Complementos cargados:presto, refresh-packagekit
No Problems Found
Remoción de kernels antiguos
package-cleanup también es útil para remover instalaciones de kernel antiguos y paquetes relacionados a dichos kernel antiguos, ue la opción --oldkernel:
# package-cleanup --oldkernel
Setting up yum
...
I will remove the following 3 kernel related packages:
kernel-2.6.30.5-43.fc11.i586
kernel-devel-2.6.29.6-217.2.16.fc11.i586
kernel-devel-2.6.30.5-43.fc11.i586
Is this ok [y/N]: y

# rpm -qa kernel*
kernel-headers-2.6.30.9-90.fc11.i586
kernel-2.6.30.8-64.fc11.i586
kernel-devel-2.6.30.8-64.fc11.i586
kernel-2.6.30.9-90.fc11.i586
kernel-devel-2.6.30.9-90.fc11.i586
kernel-doc-2.6.30.9-90.fc11.noarch
kernel-firmware-2.6.30.9-90.fc11.noarch
# uname -r
2.6.30.9-90.fc11.i586

No interpreta installonly_limit

Note que se ha dejado un kernel antiguo de acuerdo a la práctica común de yum de mantener dos kernels máximo instalados. Tenga cuidado que este comando no interpreta la opción en yum.conf installonly_limit.
Con package-cleanup y el uso de la opción --dupes, se puede detectar los paquetes duplicados en la base de datos RPM, en este ejemplo gedit-2.14.1-1.i386.
# package-cleanup --dupes
...
gedit
...
# rpm -qa | grep gedit
gedit-2.14.1-1
gedit-2.14.3-1
Se tienen dos versiones instaladas y la versión antigua permaneció, probablemente por algún mal manejo. Ahora se puede sin problemas comenzar una tarea de limpieza, y es que de eso se trata package-cleanup.
# yum remove gedit-2.14.1-1
...
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package gedit.i386 1:2.14.1-1 set to be erased
--> Running transaction check

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Removing:
gedit                   i386       1:2.14.1-1       installed          13 M

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       0 Package(s)
Remove       1 Package(s)
Is this ok [y/N] : y
Downloading Packages:
Running Transaction Test
Después de realizar esta operación se ha recuperado cierto espacio en disco, se ha limpiado, al menos en parte, la base de datos rpm que representa al software instalado en el sistema Fedora. Para más detalles de uso revise el manual, man package-cleanup.