これらのコマンドの違いは何ですか?
Sudo apt-get autoremove --purge packagenames
Sudo apt-get remove --purge packagenames
Sudo apt-get purge purge packagenmaes
Sudo apt-get remove packagenames
Sudo apt-get autoremove
remove
は、その名前のパッケージをアンインストールします。autoremove
は、不要になった自動的にインストールされたすべてのパッケージをアンインストールします。 autoremove
の後にパッケージ名をリストするのは正しくありません。それらは無視され(そしてall適格なパッケージは削除されます)、これはおそらく意図したものではありません。--purge
を使用すると、削除されるパッケージに関連付けられているシステム全体の構成ファイルも削除されます。 remove
やautoremove
などのコマンドが必要です。 --purge
フラグは、コマンドのアクションを変更します。それ自体では動作しません。purge
は、--purge remove
と同じことを意味します(remove --purge
と同じです)。 purge
を2回言うのは誤りです。 2番目のpurge
は、パッケージの名前としてpurge
dと解釈されますが、これはおそらく意図したものではありません。これらのコマンドが何をし、どのように異なるかを理解するには、次の2つの概念を理解することが役立ちます(おそらく不可欠です)。
インストールされたパッケージは、手動でまたは自動的にインストールされます。
インストールするパッケージを指定してインストールすると、手動でインストールされます。
ただし、他のパッケージもインストールされる場合があります。ほとんどのパッケージには、それらのパッケージが意図したとおりに機能するためにインストールする必要がある他のパッケージに依存関係があります。パッケージをインストールすると、その依存関係(つまり、依存する他のパッケージ)がインストールされます(以前にインストールされたものを除く)。
パッケージがインストールされるように指定されていないが、代わりにインストールするように指定したパッケージの依存関係としてインストールされる場合、automaticallyインストールされます。
2つのパッケージがインストールされていて、そのうちの1つが別のパッケージの依存関係である場合、依存関係が自動的にインストールされるわけではないことに注意してください。依存関係が手動でインストールされた可能性もあります(つまり、依存関係に依存するパッケージの前または同時にインストールされたなど、ユーザーが指定しました)。
最後に:
apt-mark
コマンドを使用)。通常、自動的にインストールされるパッケージごとに、それに依存する(および自動的にインストールされる)手動でインストールされるパッケージが少なくとも1つあります。ただし、自動インストールパッケージに依存する手動インストールパッケージをすべて削除すると、自動インストールパッケージは不要になりますが、インストールされたままになります。
apt-get autoremove
は、それらに依存して手動でインストールされたパッケージがなくなった、自動的にインストールされたパッケージを削除します。
パッケージは、そのバージョンのパッケージがインストールされているすべてのシステムで同じになるように意図されたファイルを提供します。このようなファイルは、インストールされたプログラムの実行可能ファイル、リソース、ドキュメント、およびその他の「資産」を提供します。通常、これらはパッケージが提供する「ファイル」と呼ばれます。
しかし、パッケージは他のファイルも提供します。これらのファイルは変更される可能性があります。これらは、グローバル(またはシステム全体)構成ファイルと呼ばれます。それらはほとんどの場合/etc
ディレクトリにインストールされ、インストールされたプログラムの動作を変更するために自動および手動で変更できます。たとえば、Sudo
には、構成ファイル/etc/sudoers
と、その他の構成ファイル/etc/sudoers.d
のディレクトリがあります。そのファイル、およびそのディレクトリに追加されたファイルは、誰がどのようにSudo
を使用できるかを指定します。
通常、パッケージをアンインストールしてからインストールし直すと、(パッケージファイルが破損していて再インストールした場合を除いて、パッケージの動作が変わらないことが望まれます。もちろん)。そのため、通常、パッケージをアンインストールすると、パッケージファイルは削除されますが、システム全体の構成ファイルは変更されません。
システム全体の構成ファイルも削除することになっていることを指定せずにパッケージをアンインストールすると、それはパッケージの「削除」と呼ばれます。
パッケージをアンインストールするときにパッケージのシステム全体の構成ファイルも削除する場合は、パッケージの「パージ」と呼ばれます。
apt-get remove
はパッケージを削除します。つまり、パッケージはアンインストールされますが、システム全体の構成ファイルは残ります。
apt-get purge
はパッケージを削除します。つまり、パッケージをアンインストールし、システム全体の構成ファイルも必ず削除します。
パッケージを削除する別の方法は、--purge
フラグを使用することです。それはapt-get
に何をすべきかを伝えません。代わりに、remove
などの用語(または「コマンド」)が行うように指示します。 --purge
フラグにより、パッケージのアンインストールには、アンインストールされるパッケージのシステム全体の構成ファイルの削除が伴います。つまり、--purge
フラグは削除をパージに変換します。
purge
コマンドがあるときに--purge
フラグがあるのはなぜですか?結局、Sudo apt-get --purge remove packagename
はSudo apt-get purge packagename
と同等ではありません。それらは同等です。 --purge
が便利なのは、remove
以外のコマンドotherの動作を変更する場合です。
たとえば、不要になった自動的にインストールされたパッケージをアンインストールしたい場合(それらに依存する手動でインストールされたパッケージがなくなったため)、これらの自動インストールされたパッケージを削除するだけでなく、削除したい場合もありますシステム全体の構成ファイル。次に、実行することができます:
Sudo apt-get --purge autoremove
--purge
のもう1つの使用を考えてみましょう。 --reinstall
というフラグがあり、インストールを再インストールに変換します。これは、通常、既にインストールされているパッケージをインストールしようとすると、何も起こらないか、(パッケージが自動的にインストールされたとマークされている場合)パッケージが手動でインストールされたとマークされます。ただし、--reinstall
フラグを使用すると、既にインストールされているパッケージをインストールすると、removedになり、その後installed back:
Sudo apt-get --reinstall install packagename
しかし、再インストールするパッケージのシステム全体の構成ファイルを削除するとします。これはやや一般的です。パッケージが機能せず、理由がわからない場合は、パッケージを再インストールして、構成ファイルを削除して、構成がデフォルトにリセットされるようにしてください。これを実現するには、次を実行できます。
Sudo apt-get --purge --reinstall install packagename
--reinstall
は、インストールを再インストール(つまり、削除に続いてインストール)に変換し、--purge
は、再インストールの削除部分を削除に変換します。
これで、例のapt-get
コマンドのそれぞれが何をするのかが明確になります。
Sudo apt-get autoremove --purge packagenames
これにより、それらに依存するパッケージが手動でインストールされなくなった、自動的にインストールされたパッケージがパージされます。つまり、それらのパッケージをアンインストールし(パッケージファイルを削除する必要があります)、システム全体の構成ファイルも削除します。
ここでは、packagenames
は何もしません。特に、名前がリストされているパッケージのみを削除する場合、意図したとおりに動作しません。
Sudo apt-get remove --purge packagenames
これにより、packagenames
;がパージされます。 packagenames
が空白で区切られたパッケージ名のリストであると仮定すると、それらはすべて削除されます。つまり、それらをアンインストールし(パッケージファイルを削除する必要があります)、システム全体の構成ファイルも削除します。
packagenames
にリストされているパッケージのいずれかがインストールされていない場合、リストにそのパッケージが存在しても効果はありません(インストールされなかったことが通知されることを除きます)。実際のパッケージの名前ではないパッケージ名をリストすると、コマンドはunable to locate packagename
エラーで失敗します。
Sudo apt-get purge purge packagenmaes
そのコマンドでpurge
の出現の1つを削除した場合、それは前のものと同等になります。現状では、purge
と呼ばれるパッケージをパージし、packagenames
にリストされているパッケージもパージしようとします。 purge
はパッケージの名前ではないため、エラーメッセージで失敗します。
Sudo apt-get remove packagenames
これにより、packagenames
にリストされているパッケージが削除され、パッケージファイルが削除されます。これは、システム全体の構成ファイルを削除しません(これは単なる削除であり、パージではないためです)。
Sudo apt-get autoremove
これにより、それらに依存する手動でインストールされたパッケージがなくなった、自動的にインストールされたパッケージがアンインストールされます。これには、パッケージファイルの削除が伴いますが、システム全体の構成ファイルのnot(つまり、削除ではなく削除ではありません)。
apt-get
の使用方法の詳細については、 マニュアルページ をお勧めします。より一般的な情報については、 このガイド を参照してください。