apt-get autoremoveではなくapt-get removeをいつ使用しますか?


16

apt-get removeパッケージapt-get autoremoveを削除し、特定のパッケージの依存関係を満たすためにインストールされたパッケージを削除することを理解しています。たとえば、LibreOfficeをインストールし、たとえばJavaに依存関係があり、コマンドの実行時にインストールの一部としてインストールした場合apt-get libreoffice、なぜコマンドを実行してから実行apt-get remove libreofficeするのapt-get autoremoveですか?単純にコマンドを実行することはできませんapt-get autoremove libreofficeか?またはの組み合わせですapt-get removeapt-get autoremove異なる目的のためには?

回答:


11

それは、依存関係トラッカーをどれだけ信頼するかにかかっています。ほとんど常に正しいものですが、特にリポジトリにないソフトウェアをインストールする開発者またはパワーユーザーである場合は、依存関係を維持したい場合があります。

常にapt-getを使用してソフトウェアを例外なくインストールし、すべての依存関係が正しいことを信頼している場合(通常はそうです)、使用することでapt-get autoremove少量のドライブスペースを使用し、潜在的なセキュリティホールへの露出を減らすことができます必要なパッケージがなくなったパッケージを削除します。

ただし、ソフトウェアを手動でインストールしたり、ソフトウェアを開発したり、依存関係のエラーを処理したくない場合は、autoremoveを使用して未使用の可能性のあるパッケージをクリアする方がおそらく安全です。時々使用するかどうかにかかわらず、apt-get autoremove常にソフトウェアを削除しますapt-get remove Package

私がインストールした場合たとえば、AwesomePackageそれが依存することがありAwesomeLibrary、したがって、AwesomeLibrary自動的としてインストールされます依存AwesomePackageautoremove を使用して削除すると、他のパッケージにAwesomeLibrary依存関係がない限り、アンインストールされます。ただし、SuperPackageが必要な場合AwesomeLibrary、またはAwesomeLibrary依存関係(apt-get install AwesomeLibrary)として自動的にインストールされるのではなく、自分で明示的にインストールした場合、autoremoveはそれを削除しません。

これがデフォルトではない理由はAwesomeLibrary、システム上で未使用であることは非常に小さな問題だからです。問題を引き起こすことはほとんどなく、ほとんどの依存関係は多くのスペースを占有しません。例外がありますが、依存関係を削除するときの問題は、問題を解決または防止するときよりも多く発生します。


申し訳ありませんが、Myrddin Emrys。あなたはそこで私を失いました。それで、あなたの言ったことを理解させてください。たとえば、apt-getを使用してlibreofficeをインストールした場合、まだインストールされていないと仮定すると、依存関係が大量にインストールされます。次に、libreofficeをapt-get remove libreoffice
削除

インストールした依存関係を残したい場合、それは正しいですか?別のプログラムで使用されていないと仮定して、libreofficeとそれに関連する依存関係の両方を削除したい場合は、コマンドを実行しapt-get autoremovelibreofficeますか?あれは正しいですか?
PeanutsMonkey

それは絶対に正しい@PeanutsMonkeyです。Autoremoveは、名前の付いたパッケージが他のパッケージに不要になり、意図的に個別にインストールされなかった場合、他のパッケージも削除します
マーディンエムリス

実際、それは絶対に正しいわけではありません。(@cooperが指摘したように)答えに間違った構文がありました。上記の回答でこれを修正しました。apt-get autoremoveとは別のコマンドapt-get remove Packageですが、最初の誤報をおa び申し上げます。
マーディンエムリス

Myrddin Emrysに感謝します。私がn00bである場合は申し訳ありません。あなたがそれを言うときThere are exceptions, but the times when removing a dependancy will cause problems outnumber the times when it will solve or prevent a problem。どういう意味?
PeanutsMonkey

12

あなたはの説明を見つけることができます削除自動的削除パージ清潔AUTOCLEANだけでなく、apt-getのためのmanページ内の構文を:man apt-get

それを読んだ後でもまだ確信が持てない場合は、それを明確にするための最良の方法(私はそうでした)を試してみることです。

以下は、vimの完全な依存関係ツリーの例です。

vim-dependency-tree

以下で取得できます:

apt-rdepends -d vim > vim.dot
dotty vim.dot

を使用して、直接の依存関係のリストを取得することもできますapt-cache depends(詳細については、パッケージ間の関係の宣言を参照)。

$ apt-cache depends vim
vim
  Depends: vim-common
  Depends: vim-runtime
  Depends: libacl1
  Depends: libc6
  Depends: libgpm2
  Depends: libselinux1
  Depends: libtinfo5
  Suggests: <ctags>
    exuberant-ctags
  Suggests: vim-doc
  Suggests: vim-scripts

したがって、vimは多くのパッケージに依存しているように見えるので、一緒にインストールしてapt-get install何が起こるか試してみましょう。

$ sudo apt-get install vim
...
The following extra packages will be installed:
  vim-common vim-runtime
Suggested packages:
  ctags vim-doc vim-scripts
The following NEW packages will be installed:
  vim vim-common vim-runtime
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
After this operation, 25.1 MB of additional disk space will be used.
Do you want to continue [Y/n]? n

vimを機能させるためには、vim -commonおよびvim-runtimeパッケージapt-getが必要であり、それを処理します。確認できます(ステータスの詳細dpkg -s pkg...についてはman dpkg、をご覧ください):

$ sudo dpkg -s libc6
Package: libc6
Status: install ok installed        // we already have it, no need to install

$ sudo dpkg -s vim-common
Package: vim-common
Status: deinstall ok config-files   // we don't have it, have to install

vimが依存するものをチェックしたように、vimを使用して同じパッケージに依存する他のものもチェックできますapt-cache rdepends。(おそらく)他のものの中にvimが表示されるはずです:

$ apt-cache rdepends vim-common
vim-common
Reverse Depends:
  vim-latexsuite
  vim-addon-manager
  vim-tiny
  vim-nox
  vim-gtk
  vim-gnome
 |vim-dbg
  vim-athena
  vim                               // there it is

インストールを続けましょう。vimをインストールしたら、removeautoremoveの違いを体験できます。最初に削除してみましょう:

$ sudo apt-get remove vim
...
The following packages will be REMOVED:
  vim
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 1,922 kB disk space will be freed.
Do you want to continue [Y/n]? n

apt-get removeその後、vimを削除しますが、依存関係は残しません。次に、vimの依存関係の1つを削除してみましょう。

$ sudo apt-get remove vim-runtime
...
The following packages will be REMOVED:
  vim vim-runtime
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 24.8 MB disk space will be freed.
Do you want to continue [Y/n]? n

これにより、依存関係vim-runtime とそれに依存するパッケージ、つまりvimが削除されます。好奇心から、vimの依存関係ツリーの下位にある依存関係を削除するとどうなるかを見てみましょう。

$ sudo apt-get remove libgpm2
...
The following packages were automatically installed and are no longer required:
  libgtkglext1 libqtassistantclient4 libtiff-tools libtiff5 python-qt4
  python-sip python-sqlalchemy python-sqlalchemy-ext
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  anki cheese gimp gimp-gmic gimp-plugin-registry gnome-control-center      // !
  gnome-media gnome-video-effects gstreamer0.10-plugins-good libaa1         // !
  libcheese-gtk21 libcheese3 libgpm2 mplayer quodlibet vim vlc w3m          // !
0 upgraded, 0 newly installed, 18 to remove and 0 not upgraded.
After this operation, 63.1 MB disk space will be freed.
Do you want to continue [Y/n]? n

それはvimとたくさんのグッズを削除します!

apt-get remove vim次に進みましょう。それを行ったら、残り物がいくつかあるはずです。自動削除を試してみると、次のことがわかります。

$ sudo apt-get autoremove
...
The following packages will be REMOVED:
  vim-common vim-runtime
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 23.2 MB disk space will be freed.
Do you want to continue [Y/n]? y

これらは、apt-get remove他に何も必要とされていないにもかかわらず、残された2つのパッケージです。

apt-get 0.9.7.9で実験しました。


4

これによると:http : //ubuntuforums.org/showthread.php?t=996053 autoremoveは、他のプログラムが必要としないすべてのパッケージを削除します。「apt-get autoremove libreoffice」ではなく、「apt-get autoremove」を実行します。また、不要なパッケージを削除すると、わずかなディスク領域が解放されるだけでなく、システムの「攻撃面」が減少します。


未使用のライブラリが攻撃のベクトルになる可能性があることがわかりますが、不適切な削除の重大な痛み(これは何度も発生しました)に比べて、私にとっては非常に小さな問題のようです。しかし、使用方法についての情報をありがとう...私は実際に自動削除を不適切に説明しました(私は自分でそれを使用しないので、気づきませんでした)、修正してくれてありがとう。
マーディンエムリス

3

remove指定されたプログラムを削除しますautoremoveが、それ以外の場合は使用されない依存関係を含めます。

また、ドライブの空き容量を増やしたい場合、便利で安全なコマンドは...

sudo apt-get clean

/ var / cache / apt / archivesのaptitudeキャッシュを削除します


このようなn00bであることを申し訳ありませんが、私はそれに従いません。したがって、コマンドを実行すると、apt-get remove libreoffice単にlibreofficeが削除されると考えます。そうですか?ただし、コマンドを実行すると、apt-get autoremove libreofficelibreofficeだけでなくその依存関係も削除されますか?
PeanutsMonkey

そのとおりです。それでは、私がインストールすることを言わせてneverballneverball呼ばれるパッケージに依存しますlibisfun。その場合apt-get remove neverballneverballパッケージのみが削除されます。私ならばapt-get autoremove neverball、それは削除されますneverballし、libisfunもしlibisfun他のアプリケーションに依存しません。
コバルツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.