
De alguma forma, o Software Center mostra uma lista bastante curta de pacotes instalados. Como obtê-lo em arquivo de texto?
Tentei:
> dpkg --get-selections|wc -l
3265
> aptitude search '~i!~M'|wc -l
1181
> dpkg -l | grep ^ii | sed 's_ _\t_g' | cut -f 2|wc -l
3076
> dpkg --get-selections | grep -v deinstall|wc -l
3076
> apt-mark showmanual|wc -l
1181
Eu sei que instalei algumas dezenas de pacotes, não milhares. Preciso na lista exatamente os pacotes que escolhi sem dependências para revisá-los.
ATUALIZAR
Muito obrigado a @kos, finalmente consegui a lista com esse comando:
> zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline: apt-get install \K.*' | tr ' ' '\n' | grep -v '\-\-reinstall'|grep -v '\-\-force-yes'|grep -v '\-y'|grep -v '\-f'|sort|uniq wc -l
103
Responder1
Isso não responde exatamente à pergunta: em vez disso, fornece um comando para listar todos os apt-get install
comandos já executados, juntamente com alguns conselhos sobre como analisar a lista ainda mais, a fim de obter uma lista de todos os apt-get install
comandos já executados, excluindo aqueles executados pela Ubiquity, já que a solução perfeita para esta 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
logs compactados/var/log/apt
, concatena-os e imprime emstdout
;cat - /var/log/apt/history.log
: anexa/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
um espaço à esquerda e à direita e imprime o restante de cada linha selecionada emstdout
;
Isto irá gerar a lista de todos os apt-get install
comandos já executados (a única saída indesejada poderia ser um comando apt-get
-non- install
mencionando um install
pacote, mas esse pacote não existe (ainda?), pelo menos nos repositórios padrão);
Observação:Na minha instalação (Ubuntu 15.04 64 bits), os primeiros quatro comandos listados são aqueles executados pela Ubiquity durante a instalação; para excluí-los, você pode canalizar a saída para sed
:
sed '1,4d'
Para que o finalaproximadocomando para Ubuntu 15.04 de 64 bits seria:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline:(?= apt-get)(?=.* install ) \K.*' | sed '1,4d'
Responder2
manual do show do apt-mark
fornecerá uma lista de todos os pacotes instalados manualmente sem as dependências - o importante a observar é que também mostrará quais pacotes foram instalados durante a configuração do Ubuntu.
Para gravar a saída em um arquivo:
apt-mark showmanual > algum arquivo
Na verdade, existem muitas outras maneiras, como usar este comando
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
Embora eu não tenha absolutamente nenhuma ideia de como funciona o acima;)
Para visualizar os pacotes instalados por data:
Pacotes instalados por data use cat /var/log/dpkg.log | grep "\ install\ > somefile"
Pacotes instalados usando dpkg
use ls -l /var/log/dpkg* > somefile
- este é provavelmente o que você está procurando.
Para visualizar pacotes instalados usando dpkg:
Este arquivo contém as informações acima:/var/log/dpkg.log
Responder3
Na verdade, isso é mais complicado do que parece, e existem algumas perguntas semelhantes no Ask Ubuntu.
Descobri que olhando para /var/log/apt/history.log
as versões compactadas mais antigas desse log, qualquer coisa instalada por um apt-get install
comando é listada como instalada por esse comando.
Então:
grep "apt-get install" /var/log/apt/history.log
Mostrará todos eles durante o período coberto pelo registro atual do histórico do apt. Você precisará dos gunzip
seus logs mais antigos e grep-los para reunir todas as suas informações. Todos os comandos grep podem ser redirecionados para um arquivo de texto para fornecer uma boa lista.
Provavelmente, isso só será útil para o seu caso se o Software Center usar apt-get install
durante a instalação. Eu sei que o Software Center é um front-end, apt
mas não tenho certeza se ele usa esse comando explicitamente.
Responder4
Este comando fornecerá uma lista de pacotes instalados manualmente, bem como aqueles onde suas dependências reversas "instaladas automaticamente" foram removidas (por exemplo, se você remover o metapacote ubuntu-server, suas dependências não serão mais marcadas como automáticas e serão agora esteja nesta lista):
apt list --installed | grep -v automatic
Em outras palavras, a lista acima retornará todos os pacotes sem dependências reversas ou onde também estão marcados como instalados manualmente.