apt-rdependsでパッケージの依存関係を確認する方法 - TechRepublic

apt-rdependsでパッケージの依存関係を確認する方法 - TechRepublic

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 ほど簡単な方法はありません。これは非常に重要なデータを提供できるシンプルなツールです。ぜひ試してみて、依存関係に陥っていないか確認してください。

Tagged: