Para um pacote específico, posso descobrir por que ele está instalado?
Então, posso ver ou ele é instalado manualmente ou está instalado como uma dependência de outro pacote? Ou que está instalado como parte da distribuição?
apt
software-installation
dependencies
Peter Smit
fonte
fonte
Respostas:
Uma solução rápida é inserir o seguinte comando em um terminal:
ou, se você estiver interessado apenas na causa final:
Substitua $ package pelo nome do pacote e talvez seja necessário instalar o
aptitude
pacote primeiro.Aqui está a saída que você pode obter
aptitude why aspell --show-summary
Para mais detalhes você executaria
aptitude why aspell
. Você pode ler o exemplo de saída abaixo: "Você instalou manualmenteinkscape
, o que requerlibgtkspell
, o que requerlibenchantic2a
, o que requeraspell
". (i
marcadores indicam pacotes instalados;A
marcadores indicam pacotes instalados automaticamente.)Finalmente, o seguinte comando
lista os outros pacotes instalados no seu computador que dependem diretamente do $ package . Você pode adicionar a
--recurse
opção de listar todos os pacotes que dependem direta ou indiretamente dele.fonte
apt-cache rdepends --recurse $package
provavelmente dá muitos pacotes. Eu adicionaria--installed
opção para restringir os pacotes instalados.-i
A opção restringe-se a pré-dependência e pacotes relacionados à dependência. Mas um pacote pode ser instalado porque é recomendado por outro pacote. Para incluir pacotes relacionados a essa recomendação, suponho que isso daria os corretos:apt-cache rdepends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --installed --recurse $package
apt-cache rdepends --no-{suggests,conflicts,breaks,replaces,enhances} --installed --recurse $package
Um rápido e breve raciocínio sobre o motivo de um determinado pacote ter sido instalado pode ser encontrado digitando o seguinte comando em um terminal (
Applications -> Accessories -> Terminal
):Substitua pelo nome do pacote em que você está interessado. Por exemplo, digitar
aptitude why libgoo-canvas-perl
gera o seguinte:Isso basicamente significa que o pacote
shutter
nesse caso sugeriu alibgoo-canvas-perl
instalação. Ao digitaraptitude why shutter
, posso subir a cadeia de dependência.No entanto, há uma ressalva. Costumo notar que o aptitude encontra a explicação mais plausível para a situação que pode não ser o caso real, mas, no entanto, lhe dará uma pista para procurar mais.
No meu caso,
shutter
sugerelibgoo-canvas-perl
- no entanto, pacotes sugeridos não são instalados automaticamente por padrão. No entanto, isso evita minha "experiência" por não poder editar capturas de tela com asshutter
quais me levou a instalar manualmenteligbgoo-canvas-perl
Por fim, você pode descobrir se um pacote foi instalado automaticamente (o que significa que o sistema de gerenciamento de pacotes é obrigatório como obrigatório, observando dependências e recomendações de outros pacotes que você pediu para instalar) executando o seguinte comando.
Isso produzirá uma linha como abaixo (terceira linha da saída):
Para mais informações, execute
info aptitude
(em um terminal) ou visite a página wiki do AptitudePara descobrir quando um pacote específico foi instalado, existem 2 opções:
Install
(lembre-se do caso) para listar todas as entradas relacionadas à instalação. No entanto, isso mostrará apenas os pacotes instalados usando o SynapticExecute o seguinte comando em um terminal. Isso procurará nos logs do dpkg por entradas no histórico de instalação. No entanto, há um limite máximo de quanto desses logs são retidos; portanto, se o pacote que você estava procurando foi instalado há muito tempo, talvez você não o encontre. Mais detalhes aqui
fonte
zcat -f /var/log/dpkg.log* | grep -i PackageName | egrep “\ install\ |\ upgrade\ “
Sim, você pode, e é um comando bastante óbvio, de fato. Supondo que você tenha o aptitude instalado, você pode abrir um tipo de anúncio da Janela do Terminal:
Isso deve fornecer uma lista de pacotes que dependem desse pacote específico. Se for um pacote instalado manualmente, será exibido algo como "Não foi possível encontrar um motivo para instalar o pacote".
fonte
Aqui está uma maneira simples que não depende
aptitude
, da qual a 10.10 não é mais enviada por padrão.Graficamente
Abra o Synaptic e tente removê-lo.
Se uma caixa de diálogo aparecer pedindo que você exclua outros pacotes, esses são os pacotes que (recursivamente) dependem dela.
Do terminal
Novamente, os pacotes que seriam removidos como resultado são todos aqueles que (recursivamente) dependem dele. (O
-s
parâmetro dizapt-get
para realmente não remover o pacote.)fonte
y/N
solicitação de confirmação extra, se você digitar-s
. Eu adicionei um aviso no entanto.