特定のパッケージについて、それがインストールされている理由を見つけることができますか?
だから、私はそれを見ることができますか、手動でインストールされていますか、別のパッケージの依存関係としてインストールされていますか?または、それはディストリビューションの一部としてインストールされますか?
簡単な解決策は、ターミナルで次のコマンドを入力することです。
aptitude why $package
または、最終的な原因のみに関心がある場合:
aptitude why $package --show-summary
$ packageをパッケージの名前に置き換えます。最初にaptitude
パッケージをインストールする必要がある場合があります。
aptitude why aspell --show-summary
で得られる出力は次のとおりです。
Packages requiring aspell:
inkscape
詳細については、aptitude why aspell
を実行します。以下の出力例を読むことができます。「手動でinkscape
をインストールしました。これにはlibgtkspell
が必要です。これにはlibenchantic2a
が必要です。これにはaspell
が必要です。」 (i
マーカーはインストール済みパッケージを示し、A
マーカーは自動的にインストールされたパッケージを示します。)
i inkscape Depends libgtkspell0 (>= 2.0.10)
i A libgtkspell0 Depends libenchant1c2a (>= 1.6.0)
i A libenchant1c2a Depends aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary
i A aspell-en Depends aspell (>= 0.60.3-2)
最後に、次のコマンド
apt-cache rdepends --installed $package
$ packageに直接依存する、コンピューターにインストールされている他のパッケージを一覧表示します。 --recurse
オプションを追加して、それに直接または間接的に依存するすべてのパッケージをリストできます。
ターミナル(Applications -> Accessories -> Terminal
)で次のコマンドを入力すると、特定のパッケージがインストールされた理由をすばやく簡単に判断できます。
aptitude why <package-name>
関心のあるパッケージの名前に置き換えます。たとえば、aptitude why libgoo-canvas-Perl
と入力すると、次のように出力されます。
i shutter Suggests libgoo-canvas-Perl
これは基本的に、パッケージshutter
はこの場合libgoo-canvas-Perl
のインストールを提案していることを意味します。次にaptitude why shutter
と入力することで、依存関係チェーンをたどることができます。
ただし、注意点があります。 aptitudeは、実際にはそうではないかもしれない状況について最ももっともらしい説明を見つけますが、それでもなおさらに調べる手がかりを与えてくれます。
私の場合、shutter
はlibgoo-canvas-Perl
を提案します-ただし、提案されたパッケージはデフォルトでは自動的にインストールされません。それにもかかわらず、shutter
を使用してスクリーンショットを編集できず、手動でligbgoo-canvas-Perl
をインストールするようになったため、「経験」の記憶が揺らぎます。
最後に、次のコマンドを実行することで、パッケージが自動的にインストールされたかどうかを確認できます(インストールを依頼した他のパッケージの依存関係と推奨事項を調べることで、パッケージ管理システムによって必須と判断されます)。
aptitude show <package-name>
これにより、次のような行が出力されます(出力の3行目)。
Automatically installed: no
詳細については、info aptitude
(端末で)を実行するか、 Aptitude wikiページ にアクセスしてください。
特定のパッケージがインストールされたwhenを確認するには、2つのオプションがあります。
Install
(ケースに注意)を検索して、インストールに関するすべてのエントリをリストできます。ただし、これはSynapticを使用してインストールされたパッケージのみを表示しますターミナルで次のコマンドを実行します。これにより、インストール履歴エントリのdpkgログが検索されます。ただし、保持するログの量には上限があります。したがって、探しているパッケージがかなり前にインストールされていた場合、見つからない可能性があります。詳細 ここ
zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
はい、できます。実際、それはかなり明白なコマンドです。 aptitudeがインストールされていると仮定すると、ターミナルウィンドウの広告タイプを開くことができます:
aptitude why package
これにより、その特定のパッケージに依存するパッケージのリストが表示されます。手動でインストールされたパッケージの場合、「パッケージをインストールする理由を見つけることができませんでした」などのメッセージが表示されます。
以下に、aptitude
に依存しない簡単な方法を示します。これは、10.10にはデフォルトで出荷されていません。
Synapticを開き、削除してみます。
他のパッケージを削除するように求めるダイアログがポップアップした場合、それらは(再帰的に)それに依存しているパッケージです。
apt-get remove package_name_goes_here -s
繰り返しますが、結果として削除されるパッケージはすべて(再帰的に)それに依存するパッケージです。 (-s
パラメーターは、apt-get
にパッケージを実際に削除しないように指示します。)