É possível determinar como um pacote foi instalado no debian?

3

Existe uma maneira de descobrir como um pacote foi instalado no Debian?

Ou seja. ver se foi instalado manualmente ou qual o empacotou como uma dependência.

Essas informações devem estar disponíveis em algum lugar (por exemplo, para apt-get autoremove funcionar), mas não tenho certeza de como elas podem ser exibidas para pacotes individuais.

    
por m000 03.09.2012 / 13:01

2 respostas

5

Por exemplo usando o Aptitude:

$ aptitude show gimp linux-headers-3.2.0-2-686-pae 
Package: gimp                            
New: yes
State: installed
Automatically installed: no
<snip>

Package: linux-headers-3.2.0-2-686-pae
New: yes
State: installed
Automatically installed: yes
<snip>

Isso mostra dois exemplos de pacotes no meu sistema. O campo " Automaticamente instalado " mostra se é instalado manualmente ou arrastado por uma dependência.

Esta informação está disponível para o APT, como você suspeita. Dependendo da ferramenta que você gosta de usar, ela será encontrada em lugares diferentes, mas provavelmente será chamada de "Instalação automática" com um valor "Sim / Não".

Informações sobre um pacote específico que arrastou um pacote específico

Você pode usar apt-rdepends (disponível nos repositórios principais) para listar as dependências para frente ou para trás de um pacote. Exemplo:

$ apt-rdepends -rp --state-follow=Installed \
  --state-show=Installed linux-headers-3.2.0-3-686-pae

Reading package lists... Done
Building dependency tree       
Reading state information... Done
linux-headers-3.2.0-3-686-pae
  Reverse Depends: linux-headers-686-pae (3.2+45) [Installed]
linux-headers-686-pae

(As duas primeiras linhas são um único comando, dividido por legibilidade).

Isso mostra que linux-headers-3.2.0-3-686-pae foi arrastado por linux-headers-686-pae , que, por sua vez, não possui dependências reversas no meu sistema. Veja man apt-rdepends para opções disponíveis.

Atualização: Para expandir um pouco: não é realmente útil saber exatamente qual pacote A arrastou no pacote B , já que o pacote C que também depende de B pode ter sido instalado desde então, e portanto remover A não deve / não será removido < em> B . apt-rdepends , neste caso, lista que A e C dependem de B , mas não indicam se A ou C eram originalmente responsáveis pela instalação de B .

    
por 03.09.2012 / 13:11
3

Usando o aptitude, acho que usar sua operação why é muito útil.

Por exemplo, quero descobrir por que tenho screen no meu sistema:

$ aptitude why screen
i   byobu Depends screen

Mas por que byobu ?

$ aptitude why byobu
Unable to find a reason to install byobu.

byobu foi instalado manualmente.

    
por 10.09.2012 / 16:46