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

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

これがスーパーユーザーの問題かUnixLinuxの問題かはわかりませんが、ここで試してみましょう。

最近、私は次の事実を見つけました。

#710689 - 適性:ツリーでUnicode文字を使用する - Debianのバグレポートログ

aptitude が依存関係リストのツリーに Unicode 文字を使用している場合は良いでしょう。たとえば、次のようになります。

--\ Depends (3)
   --- libc-dev-bin (= 2.17-3)
   --- libc6 (= 2.17-3)
   --- linux-libc-dev
 --\ Suggests (2)
   --- glibc-doc (UNSATISFIED)
   --\ manpages-dev

...

aptitude...私は考えました。そして、私は本当にASCIIアートツリーの出力が大好きです。そうすることが可能かどうかわからなかった!だから私はコマンドラインスイッチを1時間操作し始めましたaptitude。単にその出力を取得できませんか?だから私の最初の質問は - この出力は当初どこに出てくるのですか? !

しばらくして、私は私のシステムにaptitude最終的なシンボリックリンクがあることに気づきました。ついにインターフェースがあることに/usr/bin/aptitude-curses気づきました!aptitudecurses:/

aptitudeしたがって、パラメータなしで実行します。cursesインターフェイスが起動し、次の内容が表示されます。

能力低周ターミナル

...明らかに、対応するASCIIツリー文字は呪いインタフェースから来ています。

だから私は不思議です。 「ビジュアル」ASCIIツリーを出力しますが、パッケージの実際の依存関係を含むDebian / aptツールはありますか?

私は知っていますDebtree - パッケージ依存関係グラフ(返品ソフトウェアの推奨 - パッケージの依存関係を視覚的に表示する方法は? - Ubuntuに尋ねる);しかし、私はディレクトリツリーに似たものを端末に持ちたいと思います(sによって生成されたsの「順序が指定されていない」[ノード位置の点で]グラフではありませんdebtree)。graphvizdot

私も見たことがあるツリーのように依存関係を視覚的に表示できるものはありますか?、以下をお勧めします。

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

...必要なパッケージの直接の依存関係を最初にリストし、次に最初のレベルの依存パッケージの依存関係をリストするので大丈夫です。ただし、実際には依存関係項目ノードを展開するとツリーとして視覚化されません。 、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
        --- ...
...

ベストアンサー1

bashスクリプトで行うことができます

ソースコード: "apt-rdependents-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

おすすめ記事