O dpkg do Debian armazena a hora / data das mudanças no pacote (ou seja, instalação / limpeza)?

8

Eu sei que dpkg e dpkg-query são boas ferramentas para descobrir pacotes atualmente instalados em um sistema Debian. Além das informações registradas nos arquivos /var/log/dpkg.log.* existe algum outro lugar que me permita conhecer quando uma mudança ocorreu (ou seja, o tempo e data de uma instalação de um pacote)?

Assumindo que esta questão aqui diz que o sistema de pacotes do Debian não se preocupa com o armazenamento de informações sobre a origem de um arquivo deb (e bem como deveria fazê-lo?) Estou começando a pensar que /var/log/dpkg.log.* é o único lugar onde as informações sobre quando algo dpkg relacionado aconteceu são armazenadas.

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

    
por humanityANDpeace 02.09.2013 / 09:43

2 respostas

5

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

Se o dpkg foi invocado por uma ferramenta na suíte do APT ( apt-get , aptitude, Synaptic,…), as ações do APT são registradas em /var/log/apt/history.log e /var/log/apt/term.log . O arquivo apt/history.log contém o mesmo tipo de informação que dpkg.log . O arquivo apt/term.log contém uma transcrição da execução do dpkg (pré e pós-instalação e remoção de scripts, dpkg run, triggers).

O Aptitude também grava um log semelhante em /var/log/aptitude . Este log contém as ações que o aptitude tentou, quer tenham ou não sucesso.

Você também pode determinar quando a versão atual de um pacote foi instalado, verificando o ctime de /var/lib/dpkg/info/$package.* . Esses arquivos podem ter um ctime mais recente se foram modificados posteriormente por algum motivo (por exemplo, restaurados 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 etckeeper , toda vez que você executar o APT e algo em /etc for alterado, a alteração será confirmada para controle de versão. Quando o APT faz um commit automaticamente após uma ação, ele indica a ação tomada (por exemplo, quais pacotes foram instalados) na mensagem de log.

Não existe uma ferramenta que registre a origem dos pacotes. Normalmente, com o APT, um dado 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 onde um pacote que foi instalado no passado foi obtido.

    
por 03.09.2013 / 02:43
3

Veja os arquivos em /var/log/apt . Os arquivos history.log e term.log são gravados por apt-get e aptitude , pelo menos. Quando apt-get é executado, a linha de comando também é fornecida. Você provavelmente quer ver history.log . Entre outras coisas, isso registra o tempo da ação.

Assim, por exemplo, uma seção de log correspondente a uma instalação de pacote usando apt-get se parece com:

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 aptitude se parece 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 de wheezy amd64 do Debian.

    
por 02.09.2013 / 13:05