我在网上搜索了此类信息,发现了不同的命令行,例如这些:
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)
答案1
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
接受正则表达式而不是 glob 模式作为 shell。那么
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
答案2
对于 Ubuntu 12.04 及更高版本,正确的方法是:
sudo apt-get --purge autoremove packagename
详细这里。
不要使用packagename*
,因为这可能会删除不需要的包,导致的问题比解决的问题还多。或者,如果必须使用,至少先使用-s
, --simulate
,--dry-run
标志运行它,以确切了解如果不执行此操作会有什么效果。
答案3
您可以使用此命令:
sudo apt-get purge --auto-remove packagename
它将清除所需的软件包以及与这些软件包一起安装的依赖项。--auto-remove
选项(的别名autoremove
)的工作方式类似于sudo apt-get autoremove
。通过使用此命令,我们可以运行单个命令:
sudo apt-get purge --auto-remove packagename
代替:
sudo apt-get purge packagename
sudo apt-get autoremove
答案4
我在网上找到了这个命令。
dpkg --purge --force-depends application
http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems。