Todas as ações com o apt (apt-get) são registradas. Esses arquivos estão disponíveis em / var / log / apt /. Para visualizar o log do histórico mais recente, execute:
less /var/log/apt/history.log
Esses logs são rotacionados (todos os meses, eu acho), os arquivos antigos serão sufixados com um número e compactados. Portanto, para visualizar o próximo log do histórico, use:
Isto e excelente. A única coisa que falta é quem executou os comandos.
Expiação limitada
3
@LimitedAtonement Consulte /var/log/auth.log, pois pode conter o usuário que está executando a instalação. (isso não vai ajudar se a instalação foi invocado através de um shell / programa em execução como root)
Lekensteyn
3
Também é útil: zgrep, zcat
ishmael 01/09/2015
esse arquivo também registra os pacotes de dependência instalados como resultado do apt-get original?
Mahesha999
2
@LimitedAtonement, as versões mais recentes do APT oferecem uma parte "Requested-By:" do log para mostrar quem chamou o comando e qual comando eles chamaram como "Commandline: packagekit role = 'update-packages'" ou "Commandline: apt upgrade "
Michael Tunnell
21
Você também pode fazer um pequeno comando para exibir o conteúdo interessante.
Adicione esta função personalizada ao seu ~/.bashrc:
+1: uma linha agradável, mas válida apenas para o último período de rotação de logs. Além disso sort, sort -uem vez de , use nos dois casos para evitar a duplicação de linhas, como em pacotes como oracle-java8-installere muitos outros.
Cbhihe
1
Aqui está como você realmente faz isso, digamos package mutter:
Observe que os backticks triplos aqui não funcionam como você pensa.
edwinksl
1
Para obter o histórico de atualizações de um pacote específico, assumindo que ele foi instalado / atualizado via apt, aqui está um oneliner (bash e zgrep), exemplo para o pacote skypeforlinux:
package='skypeforlinux'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
Isso mostra os arquivos de log de histórico do apt para o skypeforlinux, incluindo as três linhas anteriores para obter a data. Em seguida, itera o resultado e ecoa as datas e versões relevantes.
Substitua o pacote de valor variável com o nome do pacote, mesmo funciona para vários pacotes desde que começam com a mesma string.
Respostas:
Todas as ações com o apt (apt-get) são registradas. Esses arquivos estão disponíveis em / var / log / apt /. Para visualizar o log do histórico mais recente, execute:
Esses logs são rotacionados (todos os meses, eu acho), os arquivos antigos serão sufixados com um número e compactados. Portanto, para visualizar o próximo log do histórico, use:
Para visualizar os logs disponíveis:
fonte
Você também pode fazer um pequeno comando para exibir o conteúdo interessante.
Adicione esta função personalizada ao seu
~/.bashrc
:E chame-o em um terminal como este:
Retirado daqui
fonte
zgrep ... /var/log/dpkg.log*
- gera entradas de arquivos também.Você também pode usar o seguinte comando para listar pacotes instalados recentemente
fonte
grep "\ install\ " /var/log/apt/history.log
em caso de necessidade de copiar e colar uma lista em apt-getSe você deseja que os pacotes que foram instalados e não desinstalados posteriormente, tente o seguinte:
Esta é a instalação menos as remoções correspondentes.
Referências:
comm
: https://stackoverflow.com/a/11963862/338303<(grep...)
sintaxe: https://unix.stackexchange.com/questions/73931/redirecting-multiple-commands-as-inputfonte
sort
,sort -u
em vez de , use nos dois casos para evitar a duplicação de linhas, como em pacotes comooracle-java8-installer
e muitos outros.Aqui está como você realmente faz isso, digamos package mutter:
O uso do dpkg.log captura operações que o apt-get não vê.
Resultado:
fonte
Para obter o histórico de atualizações de um pacote específico, assumindo que ele foi instalado / atualizado via apt, aqui está um oneliner (bash e zgrep), exemplo para o pacote skypeforlinux:
Isso mostra os arquivos de log de histórico do apt para o skypeforlinux, incluindo as três linhas anteriores para obter a data. Em seguida, itera o resultado e ecoa as datas e versões relevantes.
Substitua o pacote de valor variável com o nome do pacote, mesmo funciona para vários pacotes desde que começam com a mesma string.
Exemplo com saída:
fonte