¿Cómo rastrea qué paquetes se instalaron en Fedora (Linux)?

11

(Esta pregunta es muy similar a 6338. Se sugirió que se separara de ella ya que Fedora y Ubuntu / Debian son lo suficientemente diferentes como para garantizar respuestas diferentes).

A medida que uso cualquier configuración de Fedora, instalo gradualmente varios paquetes por encima de la instalación de línea de base. Si reinstalo, o si necesito instalar una nueva máquina, generalmente quiero reinstalar esos paquetes específicos , y quiero hacerlo rápido para volver al trabajo con un mínimo de problemas. Hasta donde he visto, todos los administradores de paquetes ( yumy pirut) pueden decirme qué paquetes están instalados, y todos tienen registros (aunque diferentes para cada herramienta, lo cual es una molestia). Pero ninguno de ellos puede decirme qué paquetes tengoinstalado, a diferencia de sus dependencias o actualizaciones del sistema. Incluso los registros son complicados porque no estoy completamente seguro de qué debo extraer de ellos o cómo integrarlos (en el caso de las diversas herramientas familiares aptas). Esto significa que cada vez que reinstalo, o incluso solo hago una copia de seguridad, no estoy seguro de cómo volver a crear esa lista.

No estoy esperando necesariamente que ninguna de las herramientas haga esto por mí, pero si no lo hacen, estoy buscando soluciones. Incluso los patrones a seguir, buenas reglas generales o una idea clara de lo que se está registrando exactamente, sería útil. Puede que no haya una "mejor respuesta" aquí, pero las buenas serían muy útiles.

cuarc
fuente

Respuestas:

3

yum list installedy yum.logmostrará lo que se ha instalado, pero no creo que nada en el sistema diferencie entre los paquetes que eligió instalar y los que se instalaron como dependencias

el otro recibir
fuente
2

Suponiendo que todavía tenga el /root/install.logarchivo de la instalación original, puede crear los archivos rpm.orig y rpm.curr de esta manera:

cd /root
rpm -qa --qf '%{NAME}\n' | sort -u > rpm.curr
awk '($1=="Installing"){print $2}' install.log | sort -u > rpm.orig

Luego, para ver los paquetes agregados:

comm -13 rpm.orig rpm.curr

Y unos eliminados:

comm -23 rpm.orig rpm.curr

Tenga en cuenta que si tiene una instalación x86_64 , no notará la diferencia entre los paquetes de 32 y 64 bits.


fuente
2

Intenta usar sudo yum history packages-list \*

Mostrará lo que se instaló explícitamente y lo que se instaló como una dependencia:

ID | Action(s)      | Package                                              
-------------------------------------------------------------------------------
47 | Dep-Install    | cairomm-1.8.0-2.1.el6.x86_64                         
47 | Dep-Install    | glibmm24-2.22.1-1.el6.x86_64                         
47 | Install        | gnome-system-monitor-2.28.0-11.el6.x86_64
Francisco
fuente
0

Esta es una fácil.

Simplemente ejecute el siguiente comando en su shell favorito. La página de manual para RPM será dolorosamente ilustrativa si necesita profundizar en esto.

rpm -qa

Axxmasterr
fuente
3
Eso enumera todos los paquetes, sí, pero no distingue entre los que he agregado y los que ya estaban en el sistema. Quiero rastrear específicamente los paquetes que instalé explícitamente.
quark
Todos los paquetes fueron instalados explícitamente por usted. Debería ser mucho más específico en lo que quiere hacer para obtener ayuda significativa.
vonbrand
0

El archivo /root/install.log le dirá qué paquetes se incluyeron en la instalación inicial. Aquí hay una secuencia de comandos rápida que comparará el contenido de este archivo con la salida de rpm -qa:

rpm -qa | sort > /root/postinstall.list
for P in `sed -n 's/Installing \(.*\)/\1/p' </root/install.log`
do
  sed -ie "/$P/d" /root/postinstall.list
done

El archivo /root/postinstall.list contiene lo que desea. Tenga en cuenta que los paquetes que son una versión actualizada de un paquete instalado originalmente aparecerán en el archivo. Si esto no es lo que desea, necesitará un patrón más sofisticado en la declaración sed.

dkaylor
fuente
0

rpm -qa --last

de las páginas del manual:

--last Orders the package listing by install time such that the latest packages are at the top.

Salida de muestra:

mdadm-3.2.2-9.el6                             Mon 12 Dec 2011 10:06:17 AM EST
libdrm-2.4.25-2.el6                           Mon 12 Dec 2011 09:54:51 AM EST
tcp_wrappers-libs-7.6-57.el6                  Mon 12 Dec 2011 09:54:50 AM EST
Dejan
fuente
0

Asumiendo que siempre usaste "yum" para instalar todo lo que puedes hacer:

sudo yum history info \* | grep "^Command Line   : install"

Debería mostrarle todos los comandos "yum install" ejecutados en el sistema después de la instalación.

Quintesse
fuente