これがSuperUserとUnixLinuxのどちらの質問なのかはわかりませんが、ここで試してみます...
最近、私はこれを見つけました:
#710689-aptitude:ツリーでユニコード文字を使用-Debianバグレポートログ
Aptitudeが依存関係リストのツリーにユニコード文字を使用するのはいいことです。の代わりに:
--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev
...
...そして私は思った-うわー、私はそのASCIIアートツリーの出力が本当に好きで、aptitude
がそれを実行できることを知らなかった!それで、aptitude
コマンドラインスイッチで1時間いじり始めます-そして、その出力を取得できませんか?だから私の最初の質問は-そもそもその出力はどこから来るのですか?
しばらくすると、私のシステムでは、aptitude
が最終的に/usr/bin/aptitude-curses
にシンボリックリンクすることに気付きました。そして、aptitude
にはcurses
インターフェースがあることに気づきました。 :/
したがって、最後に引数なしでaptitude
を実行すると、curses
インターフェースが開始され、次のようなものが表示されます。
...非常に明らかに、これらのASCII=ツリー文字はcursesインターフェースからのものです。
だから私は疑問に思っていました-そのような「視覚的な」ASCIIツリーを出力するDebian/aptツールはありますか-しかし、パッケージの実際の依存関係がありますか?
私は debtree-パッケージの依存関係のグラフ について知っています(また ソフトウェアの推奨-パッケージの依存関係を視覚的に表示する方法?-Ubuntuに質問する );しかし、ターミナルツリーでディレクトリツリーに似たものを使用したいと思います(ノードポジションの観点から見た「順序付けられていない」グラフではなく、debtree
のgraphviz
によって生成されたdot
のグラフ)。
私も見ました ツリーのように、依存関係を視覚的に示すものはありますか? 、これは以下を推奨します:
$ 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)
...
...必要なパッケージの直接の依存関係を最初にリストするため、これは良いことです。その後、第1レベルの依存関係パッケージの依存関係など-ただし、ツリーとして視覚化されません(実際には、aptitude
のcurses
インターフェイスは、依存関係ノードを展開すると、インストールされた情報を表示するだけです。それ以上の依存関係には展開されません)。
したがって、問題は、次の疑似コードのように、終端文字を含む依存関係ツリーグラフを生成するツールがあるかどうかです。
$ 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
--- ...
...
bashスクリプトで実行できます
ソースコード:「apt-rdepends-tree」
https://Gist.github.com/damphat/6214499
実行
# Sudo apt-get install apt-rdepends
# save Gist, above, as "apt-rdepends-tree"
# chmod +x apt-rdepends-tree
# ./apt-rdepends-tree gcc
出力は次のようになります:
# ./apt-rdepends-tree gcc
├─ gcc
│ ├─ cpp (>= 4:4.7.2-1)
│ └─ gcc-4.7 (>= 4.7.2-1)
└─ package-a
├─ package-b
└─ package-c