Para cada pacote que instalei, gostaria de saber quais pacotes seriam instalados se eu o desinstalasse. Um exemplo da saída que preciso é ( package: list of deps
):
abc: foo bar
bcd: baz abc
bdd: baz fuubar
Acrescentar
Se eu verificar o que realmente seria removido se remover o pacote ppp
usando apt-get
:
$ echo $(apt-get --dry-run remove ppp | grep '^Remv ' | cut -d' ' -f2)
gnome-ppp mint-meta-xfce network-manager-pptp-gnome network-manager-pptp wvdial pppoeconf pppoe pptp-linux pppconfig ppp
Vejo que é diferente do que o apt-cache
programa me dá (o que não acho que inclua dependências recursivas):
$ apt-cache show ppp | grep '^Breaks: '
Breaks: network-manager (<= 0.8.0.999-1), network-manager-pptp (<= 0.8.0.999-1), pppdcapiplugin (<= 1:3.9.20060704+dfsg.1-1)
Anexo 2
É dpkg --get-selections | cut -f1
uma maneira confiável de repetir uma lista de pacotes instalados?
apt-get --dry-run remove
parece basicamente correta. Pode perder alguns pacotes instalados automaticamente, necessários apenas para pacotes instalados automaticamente, necessários apenas pelo pacote que você remove. É por isso que você não considera uma resposta adequada?Respostas:
Você fez algumas perguntas diferentes aqui, espero poder pelo menos ajudar em uma ou duas.
Para listar todos os pacotes instalados, use
dpkg
para saída em uma lista separada por camposPara obter apenas a lista de pacotes, sem campos extras, você pode canalizá-la para outro lugar.
Por exemplo, se eu quiser remover um kernel antigo,
A maneira mais fácil de passar por todas as dependências desnecessárias é com
debfoster
. Ele roda interativamente e passa pelo que você deseja, suas dependências e pode remover ou listar o que não é uma dependência recursiva.Para listar todas as dependências recursivas de um pacote específico,
Após a execução,
debfoster
você pode verificar quaisquer dependentes que um pacote também tenha,Uma ótima maneira de listar pacotes 'órfãos' é com
deborphan
. Executedeborphan
sem opções e listará todos os pacotes 'órfãos'. Um 'órfão' é um pacote do qual nada depende, e você não instalou explicitamente.Também gosto de limpar todos os pacotes 'órfãos', após uma nova instalação. Depois de remover pacotes específicos, você pode perder tudo
apt-get autoremove --purge
com,Finalmente, às vezes você não o faz
--purge
e acaba com as sobras do pacote, as versões mais recentes doapt-get
podem removê-las automaticamente. Para remover todas as sobras dos pacotes desinstalados, execute:Se você não possui a nova versão
apt-get
, sempre pode removê-los com esses comandos. Eles cometem erros se não houver arquivos "restantes", parece que a limpeza automática pode perder alguns ocasionalmente, independentemente.fonte
irá (entre outras coisas) listar essas dependências (tempo de execução). Isso geralmente é adequado, a menos que você esteja alimentando a máquina para processamento adicional. Se você quiser exatamente o formato que você declarou, provavelmente precisará escrever um script.
fonte
apt-get remove -s packagename
. Listar todos os pacotes que você instalou é justodpkg -l
.apt-get remove -s packagename
!Eu acho que você tem que continuar e criar um loop para a mesma coisa:
É claro que remova os cabeçalhos.
fonte
apt-cache depends --recurse libtext