Como visualizar o histórico do apt-get install?

15

Como posso ver o histórico dos comandos apt-get install que eu executei manualmente?

Parece-me que todos os métodos disponíveis mostram tudo o que foi instalado desde o início da instalação do Ubuntu.

Como posso ver o histórico de apt-get install desde o tempo que o processo de instalação do sistema foi concluído?

    
por DevRobot 01.10.2015 / 13:38

7 respostas

18

Eu acho que a resposta dada aqui por kos é a melhor maneira que vi até agora. Embora o Centro de Software use apt , qualquer coisa que tenha instalado também seria listada.

O comando é:

zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline: apt-get install (?!.*--reinstall)\K.*'
    
por Arronical 01.10.2015 / 13:57
7

Basta digitar o seguinte comando no seu terminal para ver todos os registros de instalação.

grep " install " /var/log/dpkg.log
    
por Vikas Chaudhary 01.10.2015 / 14:02
2

Para simplificar a resposta do @Arronical, um truque interessante que aprendi recentemente é que você pode usar zcat -qf para catar os arquivos compactados com txt e txt.

zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline: apt-get install (?!.*--reinstall)\K.*'

torna-se

zcat -qf /var/log/apt/history.log* | grep -Po '^Commandline: apt-get install (?!.*--reinstall)\K.*'

De man zcat:

   -q --quiet
          Suppress all warnings.
   -f --force
          Force  compression  or  decompression  even if the file has multiple links or the corre‐
          sponding file already exists, or if the compressed data is read from  or  written  to  a
          terminal.  If  the  input  data is not in a format recognized by gzip, and if the option
          --stdout is also given, copy the input data without change to the standard  output:  let
          zcat  behave  as  cat.  If -f is not given, and when not running in the background, gzip
          prompts to verify whether an existing file should be overwritten.
    
por jjcf89 16.05.2017 / 22:19
1

Se você quiser ver todas as coisas que você instalou executando:

sudo apt-get install [package]

E você não mexeu com o histórico bash, nem quer ver o histórico desse tipo de instalação para outro usuário (ou para todos os usuários), então você pode simplesmente executar:

history | grep "apt-get install"

E isso deve gerar resultados relevantes para você.

    
por Great Uncle Bulgaria 01.10.2015 / 15:09
1

Se você quiser o histórico dos comandos apt-get install , use o seguinte comando:

grep "apt-get install" .bash_history

Saída:

ravan@ravan:~$ grep "apt-get install" .bash_history
sudo apt-get install --no-install-recommends ubuntu-mate-core ubuntu-mate-desktop
sudo apt-get install xfce4
sudo apt-get install xfce4.12
sudo apt-get install pgadmin
sudo apt-get install touchegg
sudo apt-get install aptitude
sudo apt-get install aptitude
sudo gedit .bash_history | grep "apt-get install" 
sudo apt-get installvim
grep "apt-get install" .bash_history
cat .bash_history | grep "apt-get install" 

Para outras informações, consulte Informações extras .

Também há informações de instalação mais detalhadas em /var/log/apt/ nos arquivos history.log e history.log.X.gz e term.log e term.log.X.gz files

Se você quiser um histórico de apenas apt-get dos comandos incluídos, então

history | grep apt-get
por Ravan 01.10.2015 / 14:15
1

Aqui está o script que imprime somente os pacotes de nível superior atualmente instalados , onde "pacotes de nível superior" são definidos como pacotes atp dos quais nenhum outro pacote atp depende. Se tais programas de nível superior foram instalados pelo atp ou por um gerenciador de pacotes como o synaptic, eles foram escolhidos manualmente pelo usuário.

#!/bin/sh
NumDaysAgo=18
find /var/lib/dpkg/info -name "*.list" -mtime -$NumDaysAgo \
    -exec stat -c $'%y\t%n' {} \; | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list,,' | \
sort -r | \
while read Date Time Xxx Pkg
do 
    lncnt=$(apt-cache --installed rdepends $Pkg | wc -l)
    if [ $lncnt -eq "2" ]
        then echo "$Date $Time $Pkg"
    fi
done
echo "JOB COMPLETED: $BASH_SOURCE"

Os pacotes são impressos em ordem inversa sob a suposição de que o usuário está mais propenso a querer as informações mais recentes mais cedo e porque o programa é lento.

Fluxo do programa:

  • O programa primeiro reúne em uma lista todos os pacotes instalados lendo os nomes dos arquivos em /var/lib/dpkg/info/ . Os tempos de modificação dos arquivos são os tempos de instalação.
  • Essa lista é classificada em ordem inversa.
  • Para cada pacote instalado $Pkg , uma chamada para apt-cache rdepends $Pkg solicita as dependências reversas de $Pkg . Se não houver dependências, trata-se de um pacote de nível superior e as informações do pacote são impressas: date time packagename

Notas:

  • O script depende do formato de saída de apt-cache rdepends $Pkg , que foi destinado aos olhos humanos e pode mudar nas futuras versões do apt.
  • O código para a parte que coleta nomes de arquivos em / var / lib / dpkg / info / veio esta postagem unix.stackexchange . Como esse pôster 'mikel' apontou, os arquivos de registro do histórico dpgk não são confiáveis porque serão rotacionados depois de atingir determinado volume.
  • Página de manual para apt-chache
  • A chamada apt-cache rdepends ... é muito lenta presumivelmente porque cada chamada é calculada iterando todas as dependências. Assim, o script acima começa a partir das instalações mais recentes para oferecer ao usuário o máximo de gratificação instantânea possível.
  • O --installed flag após apt-cache verifica se os pacotes instalados pelo dpkg também estão apt-installed. Se o usuário ou outro software de instalação contornasse o apt e usasse o dpkg diretamente, seria possível. ESTE CASO NÃO FOI TESTADO, mas acho que algo perceptível seria impresso na saída padrão ou de erro
  • A saída não inclui pacotes escolhidos manualmente, dos quais mais tarde depende um pacote superior. A saída também pode incluir pacotes que foram instalados via apt por outro software de instalação de terceiros e, portanto, não são realmente instalados manualmente. No entanto, se a finalidade da saída for como base para configurar um linux restaurado a partir de um diretório /home de backup que inclua o software de terceiros, essa saída seria adequada.
  • Alguns dos nomes de pacotes incluem números de versão e outros não. Mencionado apenas para trazer consciência para o fato.
por Craig Hicks 22.08.2017 / 07:12
0

Para ver o que você instalou e removeu, reinstalou, etc. Mais informações sobre a jornada do apt-get installs.

A resposta pode ser modificada em um alias:

alias apted='zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | fgrep Commandline: | cut -d " " -f 2- | grep -P "^|install"'
    
por Mike 04.12.2016 / 15:27