特定のパッケージについて、それがインストールされている理由を見つけることができますか?
だから、私はそれを見ることができますか、手動でインストールされていますか、または別のパッケージの依存関係としてインストールされていますか?または、それはディストリビューションの一部としてインストールされますか?
特定のパッケージについて、それがインストールされている理由を見つけることができますか?
だから、私はそれを見ることができますか、手動でインストールされていますか、または別のパッケージの依存関係としてインストールされていますか?または、それはディストリビューションの一部としてインストールされますか?
回答:
簡単な解決策は、ターミナルで次のコマンドを入力することです。
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
オプションを追加して、それに直接または間接的に依存するすべてのパッケージをリストできます。
apt-cache rdepends --recurse $package
おそらくパッケージが多すぎます。--installed
インストール済みパッケージに制限するオプションを追加します。-i
オプションは、事前依存パッケージおよび依存関連パッケージに制限されます。ただし、パッケージは別のパッケージによって推奨されているため、インストールされる場合があります。このよう勧告relatededパッケージを含めるには、私は、これは正しいものを与えるだろうとしますapt-cache rdepends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --installed --recurse $package
apt-cache rdepends --no-{suggests,conflicts,breaks,replaces,enhances} --installed --recurse $package
ターミナル(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ページをご覧ください
特定のパッケージがいつインストールされたかを調べるには、2つのオプションがあります。
Install
(ケースに注意)して、インストールに関するすべてのエントリを一覧表示できます。ただし、これはSynapticを使用してインストールされたパッケージのみを表示しますターミナルで次のコマンドを実行します。これにより、インストール履歴エントリのdpkgログが検索されます。ただし、保持されるログの量には上限があります。したがって、探しているパッケージがかなり前にインストールされていた場合は、見つからない可能性があります。詳細はこちら
zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
zcat -f /var/log/dpkg.log* | grep -i PackageName | egrep “\ install\ |\ upgrade\ “
はい、できます。実際、それはかなり明白なコマンドです。aptitudeがインストールされていると仮定すると、ターミナルウィンドウの広告タイプを開くことができます:
aptitude why package
その特定のパッケージに依存するパッケージのリストが表示されます。手動でインストールされたパッケージの場合、「パッケージをインストールする理由を見つけることができませんでした」などのメッセージが表示されます。
に依存しない簡単な方法は次のaptitude
とおりです。10.10はデフォルトではもう出荷されていません。
Synapticを開き、削除してみます。
他のパッケージを削除するように求めるダイアログがポップアップ表示される場合、それらは(再帰的に)それに依存しているパッケージです。
apt-get remove package_name_goes_here -s
繰り返しますが、結果として削除されるパッケージはすべて(再帰的に)そのパッケージに依存します。(-s
パラメーターはapt-get
、実際にパッケージを削除しないように指示します。)
y/N
場合、タイプミスに対する追加の確認要求もあります-s
。ただし、警告を追加しました。