
DebianベースのLinuxディストリビューションにアプリケーションをインストールするのをためらった経験は、これまでに何度もあります。アプリケーションがどのような依存関係をインストールするのかわからないからです。もしかしたら、サーバーを扱っているため、実行中のサービスに悪影響を与える可能性のある依存関係をインストールするリスクを冒せないからかもしれません。理由はともかく、アプリケーションをインストールすることなく、そのアプリケーションに必要な依存関係を正確に確認できるツールがあります。それがapt-rdependsです。apt-rdependsのインストールと使い方を詳しく説明します。apt installを実行する前に、デスクトップとサーバーに何がインストールされるのかを正確に把握できます。
apt-rdepends ツールは、APT キャッシュを検索してアプリケーションの依存関係を特定し、その結果をエミュレートする方法を知っています。デフォルトでは、apt-rdepends はパッケージが持つすべての依存関係のリストを表示し、それらの依存関係を再帰的にリストします。
apt-rdepends ソフトウェアは、最近の Debian ベースの Linux ディストリビューションであればどれでもインストールできます。今回は Ubuntu 17.10 でデモを行います。
インストール
幸いなことに、rdependsは標準リポジトリに含まれているため、ソフトウェアはすぐにインストールできます。apt-rdpendsをインストールするには、ターミナルウィンドウを開いて次のコマンドを実行します。
sudo apt install apt-rdepends
インストールが完了すると、ツールの使用を開始できるようになります。
使用法
apt-rdpendsの使い方は非常に簡単です。コマンドの構文は次のとおりです。
apt-rdepends [options] [packages]
例えば、phpの依存関係を調べたいとします。そのためには、次のコマンドを実行します。
apt-rdepends php
上記のコマンドの出力 (図 A ) は、apt-rdepends からのほとんどの出力と同様に、かなり長くなります。
図A

これを逆にして、対象のパッケージに依存しているパッケージを調べることもできます。例えば、phpに依存しているパッケージを調べたい場合、次のコマンドを実行します。
apt-rdepends -r php
上記のコマンドの出力 (図 B ) には、問題のパッケージに依存するアプリだけでなく、それらの依存アプリの依存関係もリストされます。
図B

ビジュアルマップ
すごく便利な裏技があります。dotコマンドを使えば、依存関係のビジュアルマップを生成できます。ただし、これを行う前に、以下のコマンドでgraphvizツールをインストールする必要があります。
sudo apt-install graphviz
インストールが完了したら、次のようにapt-rdependsコマンドの出力をドットコマンドにパイプしてビジュアル マップを生成できます。
apt-rdepends --dotty php | dot -Tpng > php-dependencies.png
–dotty オプションはパッケージのリストを受け取り、springgraph で使用できる出力を生成します。この出力は dot コマンドで使用できます。最終的な結果は、かなり大規模な依存関係マップになります(図 C)。
図C

apt-rdepends の使い方はこれで完了です。
何が必要かを知る便利な方法
パッケージがどのような依存関係をインストールするのか、あるいは他のソフトウェアがパッケージに依存しているのかを知りたいと思ったことがあるなら、apt-rdepends ほど簡単な方法はありません。これは非常に重要なデータを提供できるシンプルなツールです。ぜひ試してみて、依存関係に陥っていないか確認してください。