apt-get install 带有 '-' (减号/连字符)会删除软件包

apt-get install 带有 '-' (减号/连字符)会删除软件包

我正在寻找一些包(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                                                                                                                                                                                          

这非常危险,因为删除比自动完成失败后的简单破折号更难输入错误。

这相当于 吗apt-get remove我找不到任何相关文档。编辑:除了忽略手册页...

答案1

man apt-get

安装
   安装后跟一个或多个所需的软件包
   安装或升级。每个包都是一个包名称,而不是
   完全限定的文件名(例如,在 Debian 系统中,
   apt-utils 将是提供的参数,而不是
   apt-utils_1.2.10_amd64.deb)。
   还将检索指定用于安装的包,并且
   已安装。/etc/apt/sources.list 文件用于查找
   所需的包。如果在包名称后面附加了连字符(带有
   没有中间空格),则被识别的包将被删除,如果
   已安装。类似地,可以使用加号来指定
   要安装的软件包。后面这些功能可用于覆盖
   apt-get 的冲突解决系统做出的决定。

答案2

下面两句意思是一样的:

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

因此,如果您只是安装或删除一件事,那么实际上没有理由选择其中一个,也remove可以使用该命令。

当你想删除一个包并安装另一个包时,“减号”运算符就派上用场了在同一操作中

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

我想不出更好的例子,但在某些情况下,在单独的操作中删除一个并添加另一个可能会触发额外的不必要的安装或删除,而在单个操作中执行这两项操作将立即满足一些相互依赖性并使其成为一个整体更简单的操作。

至于添加减号是否会更容易意外删除某些内容,我首先要提醒您,在命令行上无意中损坏系统是多么容易反正。它并非为保护您自己而构建,有数十亿个甚至更简单的命令可以破坏您的系统。但其次,在这种情况下,它会准确地告诉您它将要做什么,并确认您确实想要这样做。这是低风险的。

相关内容