Cómo eliminar todos los paquetes con DNF de los que no depende ningún otro paquete

Cómo eliminar todos los paquetes con DNF de los que no depende ningún otro paquete

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:

  1. Descubra cuáles de los paquetes <a>y otros paquetes <b>todavía <c>los necesitan.
  2. dnf removetodos 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 --leavesopció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-cleanupcomando de yum-utils. Pero, con DNF, está integrado como dnf autoremovecomando. 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 listcomando 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.

información relacionada