Isso não responde exatamente à pergunta: em vez disso, ele fornece um comando para listar todos os comandos apt-get install
que já foram executados, além de alguns conselhos sobre como analisar mais a lista a fim de obter uma lista de todos os O comando apt-get install
já foi executado excluindo aqueles executados pela Ubiquity, já que a solução perfeita para essa tarefa parece não existir.
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline:(?= apt-get)(?=.* install ) \K.*'
-
zcat /var/log/apt/history.log.*.gz
: descompacta todos osapt
compactados em/var/log/apt
, concatena-os e imprime emstdout
; -
cat - /var/log/apt/history.log
: acrescenta/var/log/apt/history.log
e imprime emstdout
; -
grep -Po '^Commandline:(?= apt-get)(?=.* install ) \K.*'
: seleciona apenas as linhas que começam comCommandline: apt-get
contendoinstall
com espaço à esquerda e à direita e imprime o restante de cada linha selecionada parastdout
;
Isso mostrará a lista de todos os comandos apt-get install
já executados (a única saída indesejada poderia ser um comando apt-get
-non- install
mencionando um pacote install
, mas esse pacote não existe ( ainda?), pelo menos nos repositórios padrão);
Nota: Na minha instalação (Ubuntu 15.04 64-bit), os primeiros quatro comandos listados são aqueles executados pela Ubiquity durante a instalação; para excluir estes, você pode enviar a saída para sed
:
sed '1,4d'
Para que o comando aproximado final do Ubuntu 15.04 64-bit seja:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline:(?= apt-get)(?=.* install ) \K.*' | sed '1,4d'