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
on 所需但其余任何软件包都不需要的其他软件包。请注意,它aptitude
仅记住已安装软件包的依赖项信息。
还有更多。dpkg
可以使用(高级)较低级的命令,或者使用诸如Muon,Synaptic,软件中心等GUI工具。没有唯一的“正确方法”来删除应用程序或执行与包管理交互的其他任务。
您找到的列表仅是示例。在接受该动作之前,请确保您理解其含义并尝试执行该动作(Y
在实际执行建议的动作之前,需要先按一下它)。
问题中的星号版本可能是错误的 ; apt-get
接受一个正则表达式而不是glob模式作为外壳。那会发生什么
sudo apt-get remove application*
是以下内容:
Shell尝试扩展以application*
查看当前目录中的文件。如果(通常情况下)什么也没找到,它将返回原样的glob模式(假设bash
这里的默认行为--- zsh
将出错)。
apt-get
将删除其名称的包包含一个字符串满足正则表达式application*
,即,applicatio
其次是任意数量的n
:applicatio
,application
,applicationn
,libapplicatio
,等。
要了解这有何危险,请尝试(不使用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