apt-get remove
はパッケージを削除し、apt-get autoremove
は特定のパッケージの依存関係を満たすためにインストールされたパッケージを削除することを理解しています。たとえば、LibreOfficeをインストールし、それにJavaへの依存関係があり、コマンドapt-get libreoffice
を実行するときにインストールの一部としてインストールした場合、なぜapt-get remove libreoffice
に続いてapt-get autoremove
?コマンドapt-get autoremove libreoffice
?を単に実行することはできませんか、それともapt-get remove
とapt-get autoremove
を組み合わせて別の目的で使用しますか?
それは、依存性トラッカーをどれだけ信頼するかに依存します。ほとんど常に正しいですが、依存関係を維持したい場合があります。特に、リポジトリにないソフトウェアをインストールする開発者またはパワーユーザーである場合があります。
Apt-getを使用して常に例外なくソフトウェアをインストールし、すべての依存関係が正しいことを信頼している場合(通常は正しい)、apt-get autoremove
を使用して、少量の利益を得ることができます必要なパッケージがなくなったパッケージを削除して、ドライブスペースを確保し、潜在的なセキュリティホールへの露出を減らします。
ただし、ソフトウェアを手動でインストールしたり、ソフトウェアを開発したり、依存関係エラーの可能性に対処したくない場合は、autoremoveを使用して未使用の可能性のあるパッケージをクリアしない方がおそらく安全です。時々apt-get autoremove
を使用するかどうかに関係なく、常にapt-get remove Package
を使用してソフトウェアを削除します
たとえば、AwesomePackage
をインストールすると、AwesomeLibrary
に依存する可能性があるため、AwesomeLibrary
はdependancyとして自動的にインストールされます。 autoremoveを使用してAwesomePackage
を削除すると、他のパッケージに依存関係としてAwesomeLibrary
がない限り、それもアンインストールされます。ただし、SuperPackage
にもAwesomeLibrary
が必要な場合、またはAwesomeLibrary
を依存関係(apt-get install AwesomeLibrary
)として自動的に取得するのではなく、明示的に自分でインストールした場合は、自動削除それを取り除かないでしょう。
これがデフォルトではない理由は、システムにAwesomeLibrary
が使用されていないことは非常に小さな問題であるためです。それが問題を引き起こすことはほとんどなく、ほとんどの依存関係は多くのスペースを取りません。例外はありますが、依存関係を削除すると問題が発生し、問題を解決または防止するよりも問題が多くなります。
remove、autoremove、purge、cleanおよびautoclean、およびapt-getのマンページの構文:man apt-get
。
それを読んだ後でもまだわからない場合は(私はそうでしたが)明確にするための最良の方法は、それを試すことです。
以下は、 vim の完全な依存関係ツリーの例です。
あなたはそれを得ることができます:
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 をインストールしたら、removeとautoremove。最初に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で実験しました。
これによると: http://ubuntuforums.org/showthread.php?t=99605 autoremoveは他のプログラムが必要としないすべてのパッケージを削除します。 「apt-get autoremove libreoffice」ではなく、「apt-get autoremove」を実行します。また、不要なパッケージを削除すると、ディスクの空き容量が少なくなるだけでなく、システムの「攻撃面」が減少します。
remove
は指定されたプログラムを削除しますが、autoremove
は他の方法では使用されない依存関係を含みます。
また、ドライブの空き容量を増やしたい場合、便利で安全なコマンドは...
Sudo apt-get clean
/ var/cache/apt/archivesのaptitudeキャッシュが削除されます