ビジュアル(ASCII)Debian依存関係ツリーを端末に出力しますか?


19

これがスーパーユーザーの質問なのか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インターフェースが起動し、次のようなものを見ることができます:

aptitude-curses-terminal

...そのため、これらのASCIIツリー文字はcursesインターフェースからのものです。

だから私は疑問に思っていました-そのような「視覚的な」ASCIIツリーを出力するDebian / aptツールはありますが、パッケージの実際の依存関係はありますか?

借金について知っています-パッケージ依存関係グラフソフトウェアの推奨事項-パッケージの依存関係を視覚的に表示する方法?-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レベルの依存関係パッケージの依存関係など-しかし、ツリーとして視覚化されていません(実際、依存関係ノードを展開すると、aptitudecursesインターフェイスは単にインストールされた情報を表示します;それ以上の依存関係に展開しません)。

だから、質問は-終端文字で依存ツリーグラフを生成するツールがありますか-たとえば、次の擬似コードのように:

$ 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
        --- ...
...

回答:


23

あなたは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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.