アンインストールされたパッケージの推奨および推奨される依存関係を削除するにはどうすればよいですか?


16

アンインストールしたパッケージの依存関係を削除する方法を知っていますか?そして私は試した

apt-get autoremove

ただし、他のパッケージで推奨/推奨されている依存関係は削除されません。

つまり、Yを推奨するパッケージXをインストールしても、Yをインストールせず、Yに依存するパッケージZをインストールすると、後で

apt-get remove --auto-remove Z

Yは、それに依存するものがなくても自動的に削除されません。(Xは、それに依存していませんが、Yを「ピックアップ」しました)。


1
代わりに、これを行うパッケージとは何ですか?
Braiam

多くの例があるので、上記の説明で問題の本質を抽出しようとしました。具体的な例を含めるべきだったのは正しいことです。texlive-fullのインストールを検討してください。多くのフォントパッケージをインストールします。これは、既存の多くのパッケージで推奨されています(必須ではありません)(正確に覚えているわけではありませんが、既存のlibreofficeまたはmatplotlibまたはoctaveがこれらを提案したと思います)。したがって、問題は、「apt-get install texlive-full」の後に「apt-get remove --purge --auto-remove texlive-full」を実行しても、システムが元の状態のままにならないことです。
user2809402

回答:


14

推奨パッケージをシステムから削除したい場合、それらを推奨(または提案)するインストール済みパッケージがまだある場合でも、ファイルに以下を追加/etc/apt/apt.conf.d/99_norecommends(作成)します。

APT::Install-Recommends "false";
APT::AutoRemove::RecommendsImportant "false";
APT::AutoRemove::SuggestsImportant "false";

これらのオプションのドキュメントはこちらです。

その後、次のapt実行でそれらすべてを削除する必要があります。そうでない場合は、起動するaptitudeと、入力gg再び。

この構成では、を使用するときに推奨パッケージの自動インストールも無効になりますapt-get。以下の場合aptitudeは、コンソールのGUI、メニューの[オプション]から行うことができます>環境設定>は、「自動的に推奨パッケージをインストールします」(それをオフ)。


推奨事項はほとんどの場合有用なので、推奨事項をインストールしないことはお勧めしません。
Braiam 14年

1
@BraiamこれはOPが求めたものではありません。あなたのコメントは彼のためであり、私のためではありません。
トーター14年

私はそれが多すぎると言っているだけです。
Braiam 14年

@ブライアムそれはあなたのPOVです。私はInstallRecommends障害者と一緒に暮らす。記録のために、Debian Squeezeがリリースされるまで、つまり2011年2月以降(Ubuntuについては知りません)、デフォルトで無効にされました。さらに、サーバーまたはデスクトップのセットアップで同じ構成を必要としない場合があります。
トーター14年

2
InstallRecommends:なぜ5MBのものをインストールするのか、1GBの不要なものもインストールできるのになぜですか?
マークKコーワン

7

APTオプションのオーバーライド

依存関係とは異なり、自動的にインストールされた「推奨」または「推奨」パッケージはによって無視される場合がありますapt-get autoremove

他の場所で説明したように、APTのこの動作は構成で変更できます。

同様に、コマンドラインオプションを使用して、apt-getコマンドの構成を一時的に変更でき-oます。

これは、未使用の依存関係に加えて、残りの「推奨」および「推奨」パッケージを自動削除するように強制する方法です。

sudo apt-get autoremove -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0

注意!

一部の機能が失われる可能性があります。物事を調査して再インストールする準備をしてください。これらのパッケージをそのままにしておくほうが簡単な場合があります。

他のオプション

特定のパッケージに対してのみ「推奨」および「推奨」パッケージをアンインストールするには、apt履歴ログをご覧ください。


1
単純に分析し、そのようなパッケージを実行予行演習をしてapt-get-sにオプションとパイプをgrep ^Remv:そのためには、コマンドだ-apt-get autoremove -s -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0 | grep ^Remv
myrdd

1

実際のコマンドは次のとおりです。

sudo apt-get autoremove <Z>

しかし、これにはトリックがあります!依存関係のいずれかに、それらを推奨/提案する他の以前にインストールされたパッケージがある場合、aptはそれらを削除しません。

パッケージを指定しませんでしたが、たとえば、IcedTeaプラグインをインストールすると、依存関係によってJava / OpenJREがインストールされます。私が使用してそれらをアンインストールした場合sudo apt-get autoremove icedtea-7-plugin、あなたはLibreOfficeのもパッケージを提案しているので、それは、Java / OpenJREを、削除しないことに気付くだろう。

したがって、それらを削除するには、アンインストールしたいパッケージについて過度に具体的である必要がありますautoremove

sudo apt-get autoremove <Z> <dependency of Z>

これにより、パッケージが確実に削除されます。

deborphanを使用して、いくつかの依存関係を削除することもできます。


1
ところで、aptのマンページからの私の理解では、autoremoveはパッケージ名を予期せず、システム内の不要なパッケージの依存関係をすべて削除します。したがって、「apt-get remove Z」の後に「apt-get autoremove」という2つの手順を実行する必要があります。これらの2つのステップは、最初の質問で述べたように、「apt-get remove --auto-remove Z」で一度に実行できます。しかし、私が言ったように、問題はいくつかの残りのパッケージがあるということです。
user2809402

1
はい、あなたは私の問題を完全に説明しました。ありがとうございました。しかし、残念ながら、/ var / log / apt / history.logにアクセスして、数か月前にZでインストールされたすべてのパッケージYを探したくないので、あなたはそれを解決していません(あなたの例では、 Y = java / jre、Z = icedteaプラグイン)、すべてを手動でaptコマンドラインに追加します。他の既存のパッケージX(例ではX = libreoffice)によって提案された場合でも、Zのみを指定し、残りの依存関係は自動的に取得されます。
user2809402

1
残念ながら、これはaptシステムの動作方法です。パッケージが不要になった場合でも、パッケージを削除するのではなく、インストールしたままにしておきます。それらを削除する唯一の方法は、手動でまたはwithですdeborphanが、deborphanはいくつかのパッケージをまだ見逃している可能性があります。Debug::オプションを使用し、これに関する私の他の答えをチェックすることもできます。を使用することもできますが--no-install-recommends、apt-getはデフォルトで推奨パッケージをインストールしません。
Braiam

@ user2809402また、askubuntu.com
q /

Braiam-デボルファンポインターに感謝します。確認してみるよ。
user2809402

-1

<Z>依存関係のあるパッケージを削除する場合は、次のように入力します。

sudo apt-get autoremove --purge <Z>

3
感謝しますが、残念ながら、「-purge」を追加すると、「autoremove」で削除されたパッケージの設定が削除されます。しかし、私の知る限り、それはについての決定は変更されませんパッケージは削除するが。つまり、既存のパッケージXによって提案されるZの依存関係は、「-purge」を指定するかどうかにかかわらず、まだ削除されていません。
user2809402

1
また、autoremoveシステム全体で機能します。したがってautoremove、を呼び出すたびに、システム上の未使用のパッケージがすべて削除されます。パッケージをインストールするautoremovingと、通常はシステムが同じ状態に戻らず、代わりに「残りの」パッケージが大量に残ります。
ロルフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.