ライブ CD を作成中ですが、CD イメージのサイズを小さくするために、いくつかのパッケージを省く必要があります。デフォルトでは、推奨パッケージがインストールされますが、そのスイッチをオフにすると、不要なジャンクで肥大化した CD (Python QT プログラムをバンドルしているのに、なぜ QT4 デザイナーが必要なのでしょうか?) が、ほとんど使用できない状態になります。
理想的なのは、パッケージのリストを入力として受け取り、依存関係グラフをクロールし、のみ「depends」リンクではなく、見つかった「recommends」リンクを印刷して、ツールに入力したパッケージに基づいてインストールされる推奨パッケージの「トップレベル」を効果的に表示します。これにより、どのパッケージを含める必要があるかを判断し、必要なパッケージがなくなるまでそのパッケージ セットでツールを再実行できます。
のような他のツールはapt-cache depends
すべてをダンプし、「Recommends」をgrepすると、推奨パッケージが推奨するパッケージも表示されますが、これは望ましくありません。
たとえば、次の場合:
- AはBに依存している、
- BはCを推薦し、
- CはDに依存し、
- DはEを推薦します。
この仮想ツールにパッケージ A について質問すると、出力としてパッケージ C のみを返すように要求します。C が必要かどうかもまだわからないため、E は含めないようにします。
そのようなツールは存在するのでしょうか、それとも既存のツールでこれを実現する比較的簡単な方法はあるのでしょうか?
答え1
このツールはまさにあなたが求めているものだと思いますapt-rdepends
。apt-get でパッケージをインストールし、これを実行してください (例で使用しているパッケージ「apt」をパッケージ「A」に置き換えてください)。
apt-rdepends --follow=Depends --show=Recommends apt 2>/dev/null | grep Recommends
Recommends: gnupg
Recommends: libc6-i686
Recommends: gnupg-curl
Recommends: libldap-2.4-2 (>= 2.4.7)
省略すると、grep
「推奨」リンクのあるパッケージも表示されます。これは非常に簡単で、要件に正確に一致しますが、1 つ注意点があります。それはapt-rdepends
、いつ停止するかがわからないことです。つまり、任意の再帰レベルまで「依存」リンクをたどります。
コマンドライン オプションの詳細については、man ページを参照してください。これは非常に優れたツールで、逆依存関係の検索も実行できます。