¿El dpkg de Debian almacena la hora / fecha de los cambios de paquete (es decir, instalación / purgas)?

8

Lo sé dpkgy dpkg-queryson buenas herramientas para conocer los paquetes actualmente instalados en un sistema Debian. Además de la información registrada en los archivos /var/log/dpkg.log.*¿hay algún otro lugar que me permitiera saber cuando tuvo lugar un cambio (es decir, el tiempo y la fecha de la instalación de un paquete)?

Suponiendo que esta pregunta aquí dice que el sistema de paquetes de Debian no se preocupa por almacenar información sobre el origen de un archivo deb (y bien, ¿cómo debería hacerlo?) Estoy empezando a pensar que /var/log/dpkg.log.*es el único lugar donde la información sobre cuándo dpkgsucedió algo relacionado se almacena en absoluto.

Quizás alguien pueda confirmar esto. O bien, dígame si la información de tiempo con respecto a la instalación de paquetes está almacenada (de hecho, ¡sería genial!) Dónde encontrarlos (¿qué archivo?).

humanidad y paz
fuente

Respuestas:

5

/var/log/dpkg.loges el único archivo de registro que deja dpkg. Registra qué paquetes están instalados, desinstalados, actualizados, etc. Solo indica el nombre del paquete, la versión y la acción: dpkg no conoce el origen de los paquetes. Indica la fecha de cada acción.

Si dpkg fue invocado por una herramienta en el paquete APT ( apt-get, aptitude, Synaptic, ...), las acciones de APT se registran /var/log/apt/history.logy /var/log/apt/term.log. El archivo apt/history.logcontiene el mismo tipo de información que dpkg.log. El archivo apt/term.logcontiene una transcripción de la ejecución de dpkg (scripts previos y posteriores a la instalación y eliminación, ejecución de dpkg, disparadores).

Aptitude también escribe un inicio de sesión similar /var/log/aptitude. Este registro contiene las acciones que aptitude intentó, independientemente de si tuvieron éxito o no.

Por lo general, también puede determinar cuándo se instaló la versión actual de un paquete al verificar el ctime de /var/lib/dpkg/info/$package.*. Estos archivos pueden tener un ctime más reciente si se modificaron más tarde por algún motivo (por ejemplo, restaurado desde la copia de seguridad). La versión actual puede haber sido una actualización de otra versión, este método no le dirá nada sobre versiones anteriores.

Si instala y habilita etckeeper , cada vez que ejecuta APT y algo en los /etccambios, el cambio se compromete al control de versiones. Cuando APT realiza una confirmación automáticamente después de una acción, indica la acción tomada (por ejemplo, qué paquetes se instalaron) en el mensaje de registro.

No hay ninguna herramienta que registre el origen de los paquetes. Por lo general, con APT, un paquete dado siempre proviene de la misma fuente, a menos que las fuentes o sus prioridades hayan cambiado. En los raros casos en que las fuentes o las prioridades cambiaron, no hay una forma general de recuperar información histórica acerca de dónde se obtuvo un paquete que se instaló en el pasado.

Gilles 'SO- deja de ser malvado'
fuente
El tiempo de los /var/lib/dpkg/info/archivos incluso cambia durante el apt-get upgradefuncionamiento normal . Después de dicha actualización, por ejemplo, dpkg.lstctime == mtime == current-time - y dpkg.md5sums ctime> mtime. Por lo tanto, desafortunadamente, mirar el ctime no proporciona más información que solo mirar el mtime. No se pueden distinguir los tiempos de actualización / instalación de paquetes con ellos.
maxschlepzig
@maxschlepzig Sí, quise decir cuándo se instaló la versión actual del paquete, no cuando se instaló alguna versión por primera vez. Lo editaré.
Gilles 'SO- deja de ser malvado'
3

Ver los archivos en /var/log/apt. Los archivos history.logy term.logestán escritos por ambos apt-gety aptitude, al menos. Cuando se apt-getejecuta, también se proporciona la línea de comando. Probablemente quieras mirar history.log. Entre otras cosas, esto registra el momento de la acción.

Entonces, por ejemplo, una sección de registro correspondiente a la instalación de un paquete usando se apt-getve así:

Start-Date: 2013-09-02  00:27:25
Commandline: apt-get install unrar
Install: unrar:amd64 (4.1.4-1)
End-Date: 2013-09-02  00:27:29

Una sección de registro correspondiente a una instalación usando se aptitudeve así:

Start-Date: 2013-09-02  16:39:11
Install: hello:amd64 (2.8-2)
End-Date: 2013-09-02  16:39:15

Estos ejemplos son de un sistema Debian amd64 wheezy.

Faheem Mitha
fuente