Dependências recursivas

5

Eu posso revelar dependências de pacotes como esta

apt-cache show wget | grep ^Depends

No entanto, gostaria de listar também as dependências das dependências, para que saída seria algo como isto

wget
  libc6
    libgcc1
      gcc-4.9-base
  libidn11
  libssl1.0.0
    debconf
  libuuid1
    passwd
      libpam0g
      libselinux1
      libsemanage1
      libpam-modules
      debianutils
  zlib1g

Este exemplo tem uma profundidade de 4, mas eu gostaria que a solução real tivesse profundidade.

    
por Steven Penny 18.05.2014 / 18:52

1 resposta

5

Às vezes, você precisa descobrir todas as dependências de um pacote. Este tutorial explica como usar o apt-rdepends para listar recursivamente todas as dependências de um pacote Debian / Ubuntu.

Eu não dou nenhuma garantia de que isso funcionará para você!

1 Instalando o apt-rdepends

apt-rdepends pode ser instalado da seguinte forma:

apt-get install apt-rdepends

Se você está no Ubuntu e não está logado como root, use

sudo apt-get install apt-rdepends

em vez disso.

2 Usando o apt-rdepends

apt-rdepends pode ser usado da seguinte forma:

apt-rdepends <packagename>

Por exemplo, para descobrir todas as dependências do pacote wget, execute:

apt-rdepends wget

Este é um exemplo de saída:

falko@falko-virtual-machine:~$ apt-rdepends wget
Reading package lists... Done
Building dependency tree
Reading state information... Done
wget
  Depends: dpkg (>= 1.15.4)
  Depends: install-info
  Depends: libc6 (>= 2.11)
  Depends: libssl1.0.0 (>= 1.0.0)
dpkg
  PreDepends: coreutils (>= 5.93-1)
  PreDepends: libbz2-1.0
  PreDepends: libc6 (>= 2.11)
  PreDepends: libselinux1 (>= 1.32)
  PreDepends: xz-utils
  PreDepends: zlib1g (>= 1:1.1.4)
coreutils
  PreDepends: libacl1 (>= 2.2.11-1)
  PreDepends: libattr1 (>= 2.4.41-1)
  PreDepends: libc6 (>= 2.7)
  PreDepends: libselinux1 (>= 1.32)
libacl1
  Depends: libattr1 (>= 2.4.41-1)
  Depends: libc6 (>= 2.4)
  PreDepends: multiarch-support
libattr1
  Depends: libc6 (>= 2.4)
  PreDepends: multiarch-support
libc6
  Depends: libc-bin (= 2.13-20ubuntu5)
  Depends: libgcc1
  Depends: tzdata
libc-bin
libgcc1
  Depends: gcc-4.6-base (= 4.6.1-9ubuntu3)
  Depends: libc6 (>= 2.2.5)
  PreDepends: multiarch-support
gcc-4.6-base
multiarch-support
  Depends: libc6 (>= 2.3.6-2)
tzdata
  Depends: debconf (>= 0.5)
  Depends: debconf-2.0
debconf
  PreDepends: perl-base (>= 5.6.1-4)
perl-base
  PreDepends: dpkg (>= 1.14.20)
  PreDepends: libc6 (>= 2.11)
debconf-2.0
libselinux1
  Depends: libc6 (>= 2.8)
  PreDepends: multiarch-support
libbz2-1.0
  Depends: libc6 (>= 2.4)
xz-utils
  Depends: libc6 (>= 2.7)
  Depends: liblzma2 (>= 5.0.0)
liblzma2
  Depends: libc6 (>= 2.4)
zlib1g
  Depends: libc6 (>= 2.4)
  PreDepends: multiarch-support
install-info
  Depends: libc6 (>= 2.4)
libssl1.0.0
  Depends: debconf (>= 0.5)
  Depends: debconf-2.0
  Depends: libc6 (>= 2.7)
  Depends: zlib1g (>= 1:1.1.4)
  PreDepends: multiarch-support
falko@falko-virtual-machine:~$

Para a maioria dos pacotes, a saída é ainda maior e pode não caber na sua tela. Nestes casos, você pode canalizar a saída em mais (ou menos), por ex. da seguinte forma:

  

apt-rdepends apache2 | mais

     

apt-rdepends apache2 | menos

Copiado de HowForge

    
por skarz 18.05.2014 / 19:03