Rekursive Abhängigkeiten

7

Ich kann solche Paketabhängigkeiten aufdecken

apt-cache show wget | grep ^Depends

Ich möchte jedoch auch die Abhängigkeiten für die Abhängigkeiten auflisten, sodass die Ausgabe ungefähr so ​​wäre

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

Dieses Beispiel hat eine Tiefe von 4, aber ich möchte, dass die eigentliche Lösung die volle Tiefe hat.

Steven Penny
quelle
1
Verwandte: unix.stackexchange.com/questions/29653/… | stackoverflow.com/questions/22008193/…
Ciro Santilli 法轮功 病毒 审查 审查 六四 法轮功
Die apt-cache [...]Methode von stackoverflow.com/questions/22008193/… ist ausgezeichnet.
Starlocke

Antworten:

7

Manchmal müssen Sie alle Abhängigkeiten eines Pakets herausfinden. In diesem Tutorial wird erklärt, wie Sie mit apt-rdepends alle Abhängigkeiten eines Debian / Ubuntu-Pakets rekursiv auflisten.

Ich gebe keine Garantie dafür, dass dies für Sie funktioniert!

1 Installieren von apt-rdepends

apt-rdepends kann wie folgt installiert werden:

apt-get install apt-rdepends

Wenn Sie unter Ubuntu arbeiten und nicht als root angemeldet sind, verwenden Sie

sudo apt-get install apt-rdepends

stattdessen.

2 Verwenden von apt-rdepends

apt-rdepends kann wie folgt verwendet werden:

apt-rdepends <packagename>

Um beispielsweise alle Abhängigkeiten des Pakets wget herauszufinden, führen Sie Folgendes aus:

apt-rdepends wget

Dies ist eine Beispielausgabe:

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:~$

Bei den meisten Paketen ist die Ausgabe sogar noch länger und passt möglicherweise nicht auf Ihren Bildschirm. In diesen Fällen können Sie die Ausgabe in mehr (oder weniger) leiten, z. B. wie folgt:

apt-rdepends apache2 | Mehr

apt-rdepends apache2 | weniger

Von HowToForge kopiert

Skarz
quelle
Könnten Sie dies bitte erweitern, um rekursiv alle Abhängigkeiten von der Quelle zu erstellen?
Mdk