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


22

私はいくつかのパッケージ(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ページを見落とすことを除いて...


1
なぜそれよりも危険なのですapt-get removeか?Apt-getはそれが何をするのかを教えてくれ、確認を求めます。
marcelm

3
@marcelm removeは、オートコンプリートの失敗からの単純なダッシュよりも誤入力がはるかに難しいためです。
stebu92

@ stebu92完璧な言葉遣い、あなたが気にしないなら、私はそれを加えています。
オンドラŽižka17年

-使用される場合、少なくともY / nをy / Nに変更する必要があると思います。
オンドラŽižka17年

誤解しているのかもしれませんが、これは質問というよりは不満や苦情のようです。これを投稿した結果としてあなたが答えを得ることを望んでいるのはどのような質問ですか?
thomasrutter

回答:


28

からman apt-get

インストール
   インストールの後に必要な1つ以上のパッケージが続く
   インストールまたはアップグレード。各パッケージはパッケージ名であり、
   完全修飾ファイル名(たとえば、Debianシステムでは、
   apt-utilsは提供される引数であり、
   apt-utils_1.2.10_amd64.deb)。に必要なすべてのパッケージ
   インストール用に指定されたパッケージも取得され、
   インストール済み。/etc/apt/sources.listファイルは、
   希望するパッケージ。パッケージ名にハイフンが追加されている場合(
   間にスペースがありません)、識別されたパッケージは、
   インストールされます。同様に、プラス記号を使用して、
   インストールするパッケージ。これらの後者の機能は、オーバーライドするために使用できます
   apt-getの競合解決システムによって行われた決定。

したがって、OPは次のことを行う必要がsudo apt install nautilus && sudo apt install nautilus-terminalあります。OPがremoveコマンドで処理されたsudo apt install nautilus-terminal場合、それ以外の場合:NOが選択された場合
ジョージウドセン

3
この機能の理由は、既にインストールされているパッケージと競合するパッケージをインストールしたい場合もあるが、他のパッケージではそれらのいずれかが必要であるため、両方のアクションを同じ実行にする必要があるということです。例えばapt install sysvinit-core systemd-sysv-Essential initパッケージに必要)またはapt install msmtp postfix-(多くのパッケージはMTAに依存しています)。
サイモンリヒター

1
apt -s install upstart-sysv16.04で試行する@SimonRichter aptは、systemd-sysv(競合するため)自動的に削除することを示します。同上のためにmsmtp-mtapostifxapt削除する間違ったパッケージを選択する可能性のある、より複雑な例が必要になる場合があります。
ムル

盲目を直してくれてありがとう。apt-get remove foo+foo をインストールすることに注意してください。
オンドラŽižka17年

それは一種のきちんとした機能です。:D
アンドレアラザロット

0

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

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

したがって、単に1つのものをインストールまたは削除するだけの場合、他のものよりも1つを選択する理由は実際にはなく、removeコマンドも使用できます。

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.