
Mi problema
Quería construir un software a mano. Entonces instalé todas sus dependencias usando dnf install <a> <b> <c>
.
Entonces ya no necesitaba ese software, por lo que también quise desinstalar todas sus dependencias. Pero yum remove <a> <b> <c>
eliminaría todos los paquetes, incluso si otro paquete instalado todavía depende de uno de estos paquetes ( <b>
, por ejemplo).
Lo que he probado
- Leí el
man dnf
, pero no pude encontrar un comando adecuado.
Mi pregunta
¿Cuál es la forma más sencilla de:
- Descubra cuáles de los paquetes
<a>
y otros paquetes<b>
todavía<c>
los necesitan. dnf remove
todos los paquetes de mi lista de paquetes que ya no necesito (<a>
,<b>
y<c>
), pero no elimine los paquetes del punto(1.)
.
¿Alguna idea?
Gracias por tu ayuda. Si algo no está claro, comente y agregaré más detalles.
Respuesta1
Para Fedora puedes usarlimpieza de paquetes, por ejemplo con la --leaves
opción.
--leaves Enumera los nodos hoja en la base de datos RPM local. Los nodos hoja son RPM en los que ningún otro RPM depende.
Respuesta2
Con Yum, usarías el package-cleanup
comando de yum-utils
. Pero, con DNF, está integrado como dnf autoremove
comando. Delos documentos:
dnf [options] autoremove
Elimina todos los paquetes "hoja" del sistema que se instalaron originalmente como dependencias de paquetes instalados por el usuario pero que ya no son necesarios para dicho paquete.
Tenga en cuenta que también puede usar el dnf list
comando para ver qué paquetes se eliminarían, antes de ejecutar automremove, con
dnf list autoremove
También tenga en cuenta que DNF tiene otra diferencia de comportamiento que debería ayudarle en situaciones similares (pero no en su caso exacto). Si su software principal fue instalado por DNF (en lugar de hacerlo manualmente fuera de DNF) y usó dnf remove
, el valor predeterminado (a diferencia de yum) es eliminar también cualquier dependencia que se haya agregado solo para ese paquete y que no se use para algo más.