假设我从网站上下载了.deb软件包并进行了安装。 (我假设双击.deb文件时,该软件包是通过与dpkg连接的GUI安装的,对吗?)

如何卸载它?

#1 楼

手动安装的软件包以及所有其他软件包都出现在软件中心中。只需在软件中心中搜索您的软件包并将其删除即可。

您可能需要单击“显示N个技术项目”



除此之外,还有一些其他方法:

Synaptic:


转到系统→管理→Synaptic软件包管理器
单击“状态”按钮,然后选择“已安装(本地或作废)”。
右键单击一个程序包,然后选择“标记为删除”。

单击“应用”按钮。

这将有助于列出所有手动安装的程序包:




命令行


如果您知道软件包的名称,或者您知道软件包的名称,则可以使用sudo apt-get remove packagename请勿使用apt-cache search crazy-app搜索它,然后使用apt get
将其删除。您还可以使用dpkg --remove packagename



这也会让您知道系统上没有任何不需要的软件包,这些软件包可能作为.deb软件包的依赖项安装。使用sudo apt-get autoremove摆脱它们。

评论


aerofs-installer-0(aerofs.com)仅在命令行和突触中未出现在美国。知道为什么吗?

–关于坚果的坚果
13-10-20在5:51

您可以使用“ sudo apt purge软件包名称”来卸载软件包以及软件包的配置。

–kas
20年6月1日在2:20

+1指向突触-软件中心未显示该应用(Microsoft团队,请问,因为还有ubuntu的另一个版本?)

–Breaker222
20年6月17日在20:50

#2 楼

方便使用的命令是:

sudo dpkg -r package_name


此外,如果您需要强行删除它们,请

sudo dpkg -r --force-all pkg_name


评论


或dpkg --purge package_name也可以删除配置文件。

–汤姆
2011年1月19日,下午1:20

#3 楼

这里的每个解决方案都假定您知道或可以找到软件包的名称,但是如果您只有Deb,则没有一个解决方案提供如何删除软件包的方法。为此,下面的命令将从deb中提取软件包名称,然后删除该软件包名称。

dpkg -r $(dpkg -f your-file-here.deb Package)


NB:这不能确认正在删除的软件包已被删除。 Deb描述的确切版本-请注意。

#4 楼

打开Ubuntu软件中心(应用程序-> Ubuntu软件中心),搜索要卸载的软件包,然后单击“删除”按钮:



或者从命令行:

sudo apt-get remove <package-name>


#5 楼

-rdpkg一起使用。

有关更多信息,请参见此博客文章。

#6 楼

如果要删除该软件包以及与之相关的所有配置文件:

sudo aptitude purge packagename


#7 楼

尽管确实如此-在没有GUI的情况下,我们的选择是:



apt-get remove(或“清除”)packageName


dpkg -r packageName


其中可以从脚本执行dpkg,而无需使用等效的-y开关,而apt则需要这样做,以避免用户输入。结果是apt可以自动解决程序包依赖性,并删除命令提供的目标以外的程序包。


apt

删除iptables时请注意(我使用firewalld)也删除了lxd和ufw(iptables的前端)。但是,如果我不想删除lxd怎么办?好吧,它现在消失了:

apt-get -y purge iptables
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  iptables* lxd* ubuntu-standard* ufw*
0 upgraded, 0 newly installed, 4 to remove and 54 not upgraded.
After this operation, 23.2 MB disk space will be freed.
(Reading database ... 90906 files and directories currently installed.)
Removing ubuntu-standard (1.417.3) ...
Removing ufw (0.36-0ubuntu0.18.04.1) ...
Skip stopping firewall: ufw (not enabled)
Removing lxd (3.0.3-0ubuntu1~18.04.1) ...
Removing lxd dnsmasq configuration
Removing iptables (1.6.1-2ubuntu2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
(Reading database ... 90627 files and directories currently installed.)
Purging configuration files for ufw (0.36-0ubuntu0.18.04.1) ...
Purging configuration files for lxd (3.0.3-0ubuntu1~18.04.1) ...
Processing triggers for systemd (237-3ubuntu10.38) ...
Processing triggers for rsyslog (8.32.0-1ubuntu4) ...
Processing triggers for ureadahead (0.100.0-21) ...



dpkg

注意dpkg阻止了我潜在地以意想不到的方式更改系统如果我要在脚本执行中使用它,并且拒绝同时删除ufw和lxd:

dpkg -r iptables
dpkg: dependency problems prevent removal of iptables:
 lxd depends on iptables.
 ufw depends on iptables.

dpkg: error processing package iptables (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 iptables


结论:

所以尽管它是真的我们希望确保脚本成功完成并且不会错误退出,因此通过修改命令目标之外的系统来使脚本失败而不是完成是可取的。这样的用例可能会使dpkg -r更适合脚本执行。

#8 楼

安装的软件包将在Synaptics和软件中心中均可见。在前一种情况下,它将出现在本地程序包下,而在后一种情况下,将出现在其他程序包下。

#9 楼

您可以使用remove和force标志:

$ sudo dpkg -r --force-all pkg_name 


或者,如果通过Ubuntu Package Manager安装,则可以使用apt:

$ sudo apt remove --purge pgk_name


#10 楼

显然,您可以使用remove和force标志:
sudo dpkg -r --force-all    'some_bad_package'

,但是在很多情况下根本没有帮助。如果dpkg损坏,尝试任何GUI工具(如突触或更糟的工具)都没有帮助,因为它们都依赖于dpkg。这是因为dpkg对那些经常发生的错误很自以为是,使许多用户感到失望。这是一个侧面加载.deb的示例,而Ubuntu没有提供GUI方法或CLI方法来解决此问题: >

dpkg:错误处理软件包brmfc7440nlpr:i386(--purge):
软件包处于非常糟糕的不一致状态;您应该
在尝试删除之前重新安装它
在处理过程中遇到错误:brmfc7440nlpr:i386

是的,导致“在尝试...之前重新安装它”的原因是当然完全是徒劳的和多余的,因为它只会遇到相同的错误而又带有另一种味道。
是的,显然,添加“ --force-all”与没有错误一样是徒劳的。
许多用户希望更好地重新安装Ubuntu,这需要许多很多小时的额外工作。上面的实际示例中的软件包是用于兄弟MFC 7440N型的Laserprinter(lpr)驱动程序。

#11 楼

首先,使用以下命令检查要卸载的应用程序。
find /usr/share/applications -maxdepth 1 -type f -exec basename {} .desktop \; | sort

在上面的列表中找到应用程序名称后,运行以下命令
sudo apt remove your_application_name