apt/aptitude - パッケージコレクション全体のパッケージ依存関係ツリーを表示するには?

apt/aptitude - パッケージコレクション全体のパッケージ依存関係ツリーを表示するには?

パッケージに問題がありましたがapt解決しました。問題と解決策についてはここで説明します。 適性は、多くのパッケージを削除する必要があると言います...?

ところで、この質問について話し合っていたところ、私が答えを探したい付随的な質問があることに気づいたので、今回の質問を投稿することになりましたapt

誤って1,400を超える「自動」パッケージが孤児になって「もはや使用されていない」と表示されることをしましたaptitude。 - 誤って削除されたパッケージ。

この場合、aptパッケージリストを入力として使用し、パッケージセット全体の依存関係ツリーを生成するために使用できるユーティリティまたはプロシージャはありますか?その場合は、このツリーの上部から誤って削除したパッケージを特定してから、そのパッケージを再インストールして問題を解決できます。

つまり、パッケージリストを入力として使用し、同様のものを出力として生成するプロシージャまたはユーティリティを探しています。

top-package
|--package-000
|-+package-001
| |--package-002
|-+package-003
| |--package-004
| |--package-005
| |-+package-006
| | |--package-007
| |--package-008
|--package-009
... etc. ...

...package-NNN入力パッケージのリストとそれらが依存し、依存関係ツリーのルートとなる他のtop-packageパッケージのリストはどこにありますか?問題が上位レベルのメタパッケージを誤って削除したために発生したと仮定すると、削除されたtop-packageパッケージが識別されます。その後、再インストールしてtop-package問題を解決できます。

明らかに、私は私の特定の問題を別の方法で解決したことを繰り返したいと思います(引用された議論を参照)。私はこの特定の問題を解決するためにここに尋ねるのではなく、将来起こる可能性のある問題を診断して修正するのに役立つ、上記のような依存関係ツリーリストツールの一種が欲しいからです。

どんな参考やアドバイスでもいただきありがとうございます。

ベストアンサー1

あなたはそれを使用することができます:

apt depends <package>
apt-cache depends <package>   

または扇子の木:

sudo apt install debtree
debtree <package>

男の借金:

指定されたパッケージの依存関係グラフ(「ドット」構文)を生成します。

デフォルトでは、依存関係グラフには、(事前の)依存関係、推奨パッケージ、バージョンなしの競合、および要求されたパッケージによって提供される仮想パッケージが表示されます。オプションで、提案されたパッケージとバージョンの競合を含めることもできます。

パッケージのリストをファイルに入れたら、次の手順を実行します。

cat file |xargs -n 1 apt-cache depends
cat file |xargs -n 1 debtree

おすすめ記事