Ich bin mir nicht sicher, ob dies eher eine Frage von SuperUser oder UnixLinux ist, aber ich werde es hier versuchen ...
Kürzlich habe ich folgendes gefunden:
# 710689 - Eignung: Verwenden Sie Unicode-Zeichen in den Bäumen - Debian-Bug-Report-Protokolle
Es wäre schön, wenn aptitude Unicode-Zeichen für die Bäume in den Abhängigkeitslisten verwenden würde, zB anstelle von:
--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev
...
... und ich dachte - wow, ich mag die ASCII-Art-Tree-Ausgabe wirklich, wusste nicht, aptitude
dass das geht! Also fange ich für eine Stunde an, mit aptitude
Befehlszeilenschaltern herumzuspielen - und kann diese Ausgabe einfach nicht bekommen? Meine erste Frage war also: Woher kommt diese Ausgabe überhaupt ?!
Nach einer Weile wurde mir klar, dass auf meinem System aptitude
letztendlich Symlinks zu /usr/bin/aptitude-curses
: und mir wurde endlich klar, dass aptitude
es eine curses
schnittstelle gibt!:/
Also, ich laufe endlich aptitude
ohne Argumente - und so curses
startet das Interface und ich kann so etwas sehen:
... also kommen diese ASCII-Baum-Zeichen ganz offensichtlich von der Curses-Schnittstelle.
Also habe ich mich gefragt - gibt es ein Debian / apt-Tool, das einen solchen "visuellen" ASCII-Baum ausgibt - aber mit tatsächlichen Abhängigkeiten von Paketen?
Ich kenne Debtree - Paketabhängigkeitsdiagramme (auch Softwareempfehlung - Wie werden die Abhängigkeiten eines Pakets visuell angezeigt? - Fragen Sie Ubuntu ); aber ich hätte lieber etwas im Terminal, das einem Verzeichnisbaum ähnelt (und nicht den "ungeordneten" [in Bezug auf die Knotenposition] Graphen von debtree
, die von graphviz
's generiert wurden dot
).
Habe ich auch gesehen Gibt es etwas, das Abhängigkeiten visuell zeigt, wie ein Baum? , der empfiehlt:
$ apt-rdepends aptitude
Reading package lists... Done
Building dependency tree
Reading state information... Done
aptitude
Depends: libapt-pkg4.10
Depends: libboost-iostreams1.42.0 (>= 1.42.0-1)
Depends: libc6 (>= 2.4)
Depends: libcwidget3
Depends: libept1
Depends: libgcc1 (>= 1:4.1.1)
Depends: libncursesw5 (>= 5.7+20100313)
Depends: libsigc++-2.0-0c2a (>= 2.0.2)
Depends: libsqlite3-0 (>= 3.7.3)
Depends: libstdc++6 (>= 4.5)
Depends: libxapian22
libapt-pkg4.10
libboost-iostreams1.42.0
Depends: libbz2-1.0
Depends: libc6 (>= 2.3.6-6~)
Depends: libgcc1 (>= 1:4.1.1)
Depends: libstdc++6 (>= 4.2.1)
Depends: zlib1g (>= 1:1.1.4)
...
... was gut ist, weil es zuerst die unmittelbaren Abhängigkeiten des benötigten Pakets auflistet; und dann die Abhängigkeiten der erste Ebene Abhängigkeit von Paketen und so weiter - aber es ist nicht wie ein Baum sichtbar gemacht (und tatsächlich, aptitude
‚s - curses
Schnittstelle zeigt einfach installiert Info , wenn Sie Abhängigkeitsknoten erweitern, es dehnt nicht weiter Abhängigkeiten).
Die Frage ist also: Gibt es ein Tool, mit dem ein Abhängigkeitsbaumdiagramm mit terminalen Zeichen erstellt werden kann? Zum Beispiel im folgenden Pseudocode:
$ pseudo-deb-graph --show-package="aptitude"
aptitude
--- Depends: libapt-pkg4.10
--\ Depends: libboost-iostreams1.42.0 (>= 1.42.0-1)
--- Depends: libbz2-1.0
--- Depends: libc6 (>= 2.4)
--\ Depends: libc6 (>= 2.3.6-6~)
--\ Depends: libc-bin (= 2.13-0ubuntu13)
--- ...
--\ Depends: libgcc1
--- ...
--\ Depends: tzdata
--- ...
...