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 osaptcompactados em/var/log/apt, concatena-os e imprime emstdout; -
cat - /var/log/apt/history.log: acrescenta/var/log/apt/history.loge imprime emstdout; -
grep -Po '^Commandline:(?= apt-get)(?=.* install ) \K.*': seleciona apenas as linhas que começam comCommandline: apt-getcontendoinstallcom 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'