web-dev-qa-db-ja.com

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

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を組み合わせて別の目的で使用しますか?

17
PeanutsMonkey

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

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

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

たとえば、AwesomePackageをインストールすると、AwesomeLibraryに依存する可能性があるため、AwesomeLibrarydependancyとして自動的にインストールされます。 autoremoveを使用してAwesomePackageを削除すると、他のパッケージに依存関係としてAwesomeLibraryがない限り、それもアンインストールされます。ただし、SuperPackageにもAwesomeLibraryが必要な場合、またはAwesomeLibraryを依存関係(apt-get install AwesomeLibrary)として自動的に取得するのではなく、明示的に自分でインストールした場合は、自動削除それを取り除かないでしょう。

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

12
Myrddin Emrys

removeautoremovepurgecleanおよびautoclean、およびapt-getのマンページの構文: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。最初にremoveを試してみましょう:

$ 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に進みましょう。それが終わったら、残り物があるはずです。 autoremoveを試してみると、次のことがわかります。

$ 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

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

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

12
Johnny Baloney

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

4
conspiritech

removeは指定されたプログラムを削除しますが、autoremoveは他の方法では使用されない依存関係を含みます。

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

Sudo apt-get clean

/ var/cache/apt/archivesのaptitudeキャッシュが削除されます

3
kobaltz