このような情報を求めてネットで検索したところ、以下のようなさまざまなコマンドラインが見つかりました。
sudo apt-get remove application
sudo apt-get remove application*
sudo apt-get remove --purge application
sudo apt-get remove --purge application*
sudo apt-get purge application
sudo apt-get purge application*
では、どのような方法が正しいのでしょうか?この"*"を使う必要があるのでしょうか?
その後、こんなコマンドも見つけました。
sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
apt-get remove packagename
は、パッケージ packagename
のバイナリは削除しますが、設定ファイルやデータファイルは削除しません。また、インストール時に一緒にインストールされた依存関係はそのまま残されます。
apt-get purge packagename
または apt-get remove --purge packagename
のいずれかを選択してください。
は、パッケージ packagename
に関する約 全て を削除しますが、インストール時に一緒にインストールされた依存関係は削除されません。両方のコマンドは同等です。
特に、設定を間違えたためにアプリケーションを最初からやり直したいときに便利です。ただし、ユーザーのホームディレクトリにある設定ファイルやデータファイルは削除されません(通常、ホームディレクトリの隠しフォルダにあります)。また、これらのファイルを削除する簡単な方法もありません。
apt-get autoremove
孤児になったパッケージを削除します。つまり、かつては依存関係としてインストールされていたが、今はそうではないインストール済みのパッケージを削除します。これは、もう興味のない依存関係をインストールしたパッケージを削除した後に使います。
aptitude remove packagename
または aptitude purge packagename
(同様に)は、packagename
で必要とされていたが、残りのどのパッケージからも必要とされていない他のパッケージの削除も試みます。なお、aptitude
は自分がインストールしたパッケージの依存関係の情報のみを記憶します。
他にもたくさんのパッケージがあります。下位の dpkg
コマンド(上級者向け)や、Muon、Synaptic、Software Center などの GUI ツールも使用できます。アプリケーションを削除したり、パッケージ管理と相互作用するその他のタスクを実行するのに、唯一の正しい方法はありません。
ここに挙げたリストはあくまでも例です。意味を理解し、アクションを受け入れる前にやりたいことを試してみてください (提案されたアクションを実際に実行する前に Y
を押す必要があります)。
質問にあるアスタリスクバージョンはおそらく間違っています。apt-get
はシェルのようにグロブパターンではなく、正規表現を受け入れます。ですから、次のようなことが起こります。
sudo apt-get remove application*
は次のようになります。
1.シェルはカレントディレクトリ内のファイルを見て application*
を展開しようとします。(通常は)何も見つからなかった場合は、グロブパターンをそのまま返します (ここでは bash
がデフォルトの動作をすると仮定しています --- zsh
はエラーになります)。
2.2. apt-get
は、名前に正規表現 application*
を満たす文字列**が含まれるパッケージを削除します。つまり、applicatio
の後に任意の数の n
が続くパッケージを削除します。
3.3. これがどのように危険なのかを見るために、(二重の安全のために root を外して) apt-get -s remove "wine*"
(-s
は実行するのではなくシミュレートする) を試してみてください --- 名前に "win" を持つすべてのパッケージと、それに依存するパッケージ、ほぼシステム全体を削除すると言うでしょう。
おそらく、意図したコマンドは実際には
sudo apt-get remove "^application.*"
(引用符とドットに注意)で、名前が application
で始まるすべてのパッケージを削除します。
これらのコマンドは
sudo updatedb # <-- updates the locate database (index). harmless
sudo locate application # <-- locates the file 'application'. harmless
sudo rm -rf (file/folder name) # <-- removes files/dirs recursively. dangerous.
は完全にパッケージ管理の範囲外です。パッケージマネージャを使わずにパッケージに属するファイルを削除しないでください!混乱してしまいますし、やり方としては 間違っています 。
あるファイルがどのパッケージに属しているかわからない場合は、次のことを試してみてください。
dpkg -S /path/to/file
sudo apt-get remove --purge applicationや
sudo apt-get remove applicationsを使えば、99% 安全に使用できます。purge
フラグを使うと、単純にすべての設定ファイルも削除されます。これは、当該アプリケーションを再インストールしたいかどうかによって、望むものであるかどうかが決まります。application*は、
application`で始まるすべてのアプリケーションにマッチします。これは通常、削除するメインのアプリケーションのプラグインや追加機能などです。
sudo apt-get remove gedit*
とすると、gedit
, gedit-plugins
, gedit-common
を削除します。ほとんどのプラグインや関連プログラムはメインのアプリケーションに依存しており、メインのアプリケーションをアンインストールすると自動的に削除される(または削除するようにマークされる)ので、通常はこのようなことをする必要はありません。
最後のコマンドは、厄介なアンインストーラーを持っていることが知られているアプリケーションの残り物を削除するためのもので、アプリケーションの残り物を削除するだけです。
削除したいアプリケーションに依存します。yesコマンドを発行する前に、必ずその依存関係を確認してください。コマンドラインで何かを削除すると、不要になった一握りのライブラリが表示されることがあります。これらは apt-get autoremove で削除できます。
sudo apt-get remove --purge applicationname のようなコマンドを使うと、他のアプリケーションが必要としている依存関係が削除されてしまい、システムが壊れる可能性があるので注意してください。
より安全な方法で削除したい場合は、ソフトウェアセンターで削除するか、apt-get remove applicationnameを実行してください。依存関係が不要になった場合は、後でapt-get autoremoveを実行してください。