He instalado algunos paquetes rpm en mi Fedora 17. Algunos paquetes tenían muchas dependencias. He eliminado algunos paquetes pero olvidé eliminar las dependencias no utilizadas con yum remove.
No es fácil. ¿Cómo se diferencia entre "un archivo que fue requerido por algo que eliminé" de "un archivo que no es requerido por otra cosa que realmente quiero"?
Puede usar el package-cleanupcomando del yum-utilspaquete para enumerar los "nodos hoja" en el gráfico de dependencia del paquete. Estos son paquetes que se pueden eliminar sin afectar nada más:
$ package-cleanup --leaves
Esto producirá una lista de "bibliotecas" de las cuales nada más depende. En la mayoría de los casos, puede eliminar estos paquetes de forma segura. Si agrega --alla la línea de comando:
$ package-cleanup --leaves --all
También obtendrá paquetes que no se consideran bibliotecas, pero esta lista será tan larga que probablemente no será útil.
APT (el equivalente Debian de Yum) tiene la noción de "paquete instalado automáticamente". Si un paquete no se solicitó explícitamente, pero solo se introdujo como una dependencia, se eliminará automáticamente (con un mensaje de confirmación) si todos los paquetes que dependen de él se eliminan. Sin una indicación de este tipo, de hecho no es fácil.
Gilles 'SO- deja de ser malvado'
101
Si instala un paquete con yum install, digamos pdftk, atraerá muchas dependencias:
yum remove pdftk eliminará solo ese paquete y no todas las dependencias.
Pero puede ver todas las 'transacciones' (instalar, eliminar, etc.):
$ sudo yum history list pdftk
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
88 | install pdftk | 2012-12-14 13:35 | Install | 11
También puede aplicar el comando autoremove con un paquete específico
yum autoremove <package>
Lo que eliminará las dependencias innecesarias de ese paquete instalado. autoremovees un alias de, remove --setopt=clean_requirements_on_remove=1pero por alguna razón, todavía no está documentado.
comando yum remove --setopt=clean_requirements_on_remove=1funciona para mí en centOS
BMW
Para mí, la package-cleanup --leaves && yum autoremovelibvorbis eliminada hizo que la aplicación "Ices" de transmisión de radio por Internet muriera, probablemente porque no está en repos y tuve que compilarla.
Nakilon
El comando también yum autoremovefunciona en CentOS 7.6.
scrutari
yum autoremove no puede eliminar 4 núcleos antiguos en CentOS 7
package-cleanupgenera "Configuración de yum" en mi máquina, lo que provocó que Yum se eliminara. Ahora estoy tratando de descubrir cómo resolver esto.
Paul Lammertsma
@PaulLammertsma solo agrega la -qopción a la limpieza del paquete. Esto también me pasó a mí: D
Ealhad
1
package-cleanup -q --leaves | xargs -r -l1 yum -y removeomitirá xargs en silencio si la salida de limpieza del paquete está vacía, útil para scripts automatizados como ansible, chef, puppet, vagabundo
Ilya Sheershoff
esta es la respuesta.
xCovelus
1
En Fedoras más nuevas con dnf, puede usar dnf repoquery --unneededcomo reemplazo para package-cleanup --leaves.
yum
: linux.die.net/man/8/yum ?Respuestas:
No es fácil. ¿Cómo se diferencia entre "un archivo que fue requerido por algo que eliminé" de "un archivo que no es requerido por otra cosa que realmente quiero"?
Puede usar el
package-cleanup
comando delyum-utils
paquete para enumerar los "nodos hoja" en el gráfico de dependencia del paquete. Estos son paquetes que se pueden eliminar sin afectar nada más:Esto producirá una lista de "bibliotecas" de las cuales nada más depende. En la mayoría de los casos, puede eliminar estos paquetes de forma segura. Si agrega
--all
a la línea de comando:También obtendrá paquetes que no se consideran bibliotecas, pero esta lista será tan larga que probablemente no será útil.
fuente
Si instala un paquete con
yum install
, digamospdftk
, atraerá muchas dependencias:yum remove pdftk
eliminará solo ese paquete y no todas las dependencias.Pero puede ver todas las 'transacciones' (instalar, eliminar, etc.):
Y luego puedes deshacer esa transacción:
fuente
yum history
. ¡Gracias!A partir de Fedora 18, simplemente puede usar este comando
o
También puede aplicar el comando autoremove con un paquete específico
Lo que eliminará las dependencias innecesarias de ese paquete instalado.
autoremove
es un alias de,remove --setopt=clean_requirements_on_remove=1
pero por alguna razón, todavía no está documentado.fuente
yum remove --setopt=clean_requirements_on_remove=1
funciona para mí en centOSpackage-cleanup --leaves && yum autoremove
libvorbis eliminada hizo que la aplicación "Ices" de transmisión de radio por Internet muriera, probablemente porque no está en repos y tuve que compilarla.yum autoremove
funciona en CentOS 7.6.Tomé larsks respuesta un paso más allá.
Esto toma todas las dependencias que se pueden eliminar sin afectar nada más y luego las elimina. Mejor que pasar uno por uno.
"-q" es útil en algunos sistemas que imprimen "Configuración de yum", de lo contrario, este comando elimina yum. Y eso no es lo que quieres.
fuente
package-cleanup
genera "Configuración de yum" en mi máquina, lo que provocó que Yum se eliminara. Ahora estoy tratando de descubrir cómo resolver esto.-q
opción a la limpieza del paquete. Esto también me pasó a mí: Dpackage-cleanup -q --leaves | xargs -r -l1 yum -y remove
omitirá xargs en silencio si la salida de limpieza del paquete está vacía, útil para scripts automatizados como ansible, chef, puppet, vagabundoEn Fedoras más nuevas con
dnf
, puede usardnf repoquery --unneeded
como reemplazo parapackage-cleanup --leaves
.fuente