O dpkg do Debian armazena a hora / data das mudanças no pacote (isto é, instalação / remoção)?

8

Eu sei disso dpkge dpkg-querysão boas ferramentas para descobrir sobre pacotes atualmente instalados em um sistema Debian. Além das informações registradas nos arquivos, /var/log/dpkg.log.*existe algum outro local que me permita saber quando ocorreu uma alteração (ou seja, a hora e a data da instalação de um pacote)?

Assumindo que esta pergunta aqui diga que o sistema de pacotes do Debian não se preocupa em armazenar informações sobre a origem de um arquivo deb (e como deve fazê-lo?), Estou começando a pensar que esse /var/log/dpkg.log.*é o único local onde informações sobre quando algo dpkgrelacionado aconteceu é armazenado.

Talvez alguém possa confirmar isso. Ou então me diga se as informações de tempo referentes à instalação de pacotes são armazenadas (na verdade, seria ótimo!) Onde encontrá-las (qual arquivo?).

humanidade e paz
fonte

Respostas:

5

/var/log/dpkg.logé o único arquivo de log que é deixado pelo próprio dpkg. Ele registra quais pacotes estão instalados, desinstalados, atualizados etc. Ele indica apenas o nome do pacote, a versão e a ação: o dpkg não sabe a origem dos pacotes. Indica a data de cada ação.

Se o dpkg foi chamado por uma ferramenta no conjunto APT ( apt-get, aptitude, Synaptic,…), as ações do APT são registradas /var/log/apt/history.loge /var/log/apt/term.log. O arquivo apt/history.logcontém o mesmo tipo de informação que dpkg.log. O arquivo apt/term.logcontém uma transcrição da execução do dpkg (scripts de pré e pós-instalação e remoção, execução do dpkg, gatilhos).

O Aptitude também grava um login semelhante /var/log/aptitude. Esse log contém as ações que o aptitude tentou, tenham ou não êxito.

Em geral, você também pode determinar quando a versão atual de um pacote foi instalada, verificando o ctime de /var/lib/dpkg/info/$package.*. Esses arquivos podem ter um ctime mais recente se forem modificados posteriormente por algum motivo (por exemplo, restaurados a partir do backup). A versão atual pode ter sido uma atualização de outra versão; esse método não informa nada sobre versões anteriores.

Se você instalar e ativar o etckeeper , sempre que executar o APT e algo em /etcalterações, a alteração será confirmada no controle de versão. Quando o APT faz uma consolidação automaticamente após uma ação, indica a ação executada (por exemplo, quais pacotes foram instalados) na mensagem de log.

Não há ferramenta que registre a origem dos pacotes. Geralmente, com o APT, um determinado pacote sempre vem da mesma fonte, a menos que as fontes ou suas prioridades tenham mudado. Nos raros casos em que as fontes ou prioridades mudaram, não há uma maneira geral de recuperar informações históricas sobre de onde um pacote que foi instalado no passado foi obtido.

Gilles 'SO- parar de ser mau'
fonte
O horário dos /var/lib/dpkg/info/arquivos é alterado durante a apt-get upgradeoperação normal . Após essa atualização, por exemplo, dpkg.lstctime == mtime == hora atual - e dpkg.md5sums ctime> mtime. Portanto, infelizmente, olhar para o ctime não fornece mais informações do que apenas olhar para o mtime. Não se pode distinguir os tempos de atualização / instalação de pacotes com eles.
precisa saber é o seguinte
@maxschlepzig Sim, eu quis dizer quando a versão atual do pacote foi instalada, não quando alguma versão foi instalada pela primeira vez. Eu vou editar isso.
Gilles 'SO- stop be evil'
3

Veja os arquivos em /var/log/apt. Os arquivos history.loge term.logsão gravados por ambos apt-gete aptitude, pelo menos. Quando apt-getexecutado, a linha de comando também é fornecida. Você provavelmente quer olhar history.log. Entre outras coisas, isso registra o tempo da ação.

Portanto, por exemplo, uma seção de log correspondente a uma instalação de pacote usando o seguinte apt-get:

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

Uma seção de log correspondente a uma instalação usando se aptitudeparece com:

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

Estes exemplos são de um sistema Debian amd64 wheezy.

Faheem Mitha
fonte