web-dev-qa-db-ja.com

apt-get install with '-'(minus / hyphen)パッケージを削除します

私はいくつかのパッケージ(nautilus-terminal)を探していましたが、誤ってこれをしました:

$ Sudo apt-get install nautilus-
Reading package lists... Done                                                                                                                                                                                                 
Building dependency tree                                                                                                                                                                                                      
Reading state information... Done                                                                                                                                                                                             
The following packages were automatically installed and are no longer required:                                                                                                                                               
  apturl apturl-common libgail-3-0 linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic linux-image-4.4.0-57-generic linux-image-extra-4.4.0-57-generic                                                                      
Use 'Sudo apt autoremove' to remove them.                                                                                                                                                                                     
The following packages will be REMOVED:                                                                                                                                                                                       
  gnome-session-flashback nautilus nautilus-sendto nautilus-share ubuntu-desktop                                                                                                                                              
0 upgraded, 0 newly installed, 5 to remove and 69 not upgraded.                                                                                                                                                               
After this operation, 2 031 kB disk space will be freed.                                                                                                                                                                      
Do you want to continue? [Y/n] ^[[^C                                                                                                                                                                                          

Removeは、失敗したオートコンプリートからの単純なダッシュよりも誤入力がはるかに難しいため、非常に危険です。

それはapt-get removeと同等ですか? そのためのドキュメントが見つかりませんでした。 編集:manページを見落とすことを除いて...

22
Ondra Žižka

man apt-get から:

install 
 installの後に、
のインストールまたはアップグレードに必要な1つ以上のパッケージが続きます。各パッケージは、
完全修飾ファイル名ではなくパッケージ名です(たとえば、Debianシステムでは、
 apt-utils_1ではなく、apt-utilsが提供される引数になります。 2.10_AMD64.deb)。インストールに指定された
パッケージで必要なすべてのパッケージも取得され、
がインストールされます。 /etc/apt/sources.listファイルは、
目的のパッケージを見つけるために使用されます。 パッケージ名にハイフンが追加された場合(
の間にスペースが挿入されない場合)、特定のパッケージは
がインストールされていれば削除されます。同様にプラスsignを使用して、インストールする
パッケージを指定できます。これらの後者の機能は、apt-getの競合解決システムが行った決定をオーバーライドするために使用できます。
28
muru

次の2つの意味は同じです。

# apt-get remove nautilus
# apt-get install nautilus-

そのため、あるものを単にインストールまたは削除するだけの場合は、実際に他のものを選択する理由はなく、removeコマンドも使用できます。

「マイナス」演算子が役立つのは、あるパッケージを削除して別のパッケージをインストールする場合です同じ操作で

# apt-get install php5-cgi libapache2-mod-php5- 

より良い例を考えることはできませんでしたが、別々の操作で1つを削除し、別の操作を追加すると、不必要なインストールまたは削除がトリガーされる場合がありますが、両方を単一の操作で実行すると、すぐにいくつかの相互依存関係が満たされ、全体的にシンプルな操作。

マイナスを追加すると、意図せずに何かを誤って削除しやすくなるかどうかについて、まず何よりも、コマンドラインとにかくで意図せずにシステムに損傷を与えることがどれほど簡単かを説明します。それはあなた自身からあなたを守るために作られたものではなく、あなたのシステムを使いこなすことができるさらに簡単なコマンドが何十億もあります。しかし、第二に、この場合、それは何をするつもりかを正確に伝え、あなたが本当にそれをやりたいことを確認します。これは低リスクです。

0
thomasrutter