如何卸载软件?

在Ubuntu上安装有多种方法。卸载项目的各种方法是什么?

哪些方法总是有效的?我如何确信某个东西已被卸载?

11个回答

如果应用程序是通过软件包管理器安装的,你只需要运行。
sudo apt-get remove <application_name>

那应该总是有效的。如果终端不是你的菜,你可以打开系统 → 管理 → Synaptic软件包管理器,搜索你想要删除的软件包,点击旁边的复选框并选择“标记为删除”。一旦你点击“应用”,软件包就应该被删除了。当然还有Ubuntu软件中心,它基本上和Synaptic一样。只需搜索应用程序名称并点击“删除”按钮即可。

有时应用程序可能会拆分成多个包(例如,许多游戏都有一个单独的音乐包)。为了确保卸载所有相关的软件包和配置文件,您可以输入

sudo apt-get purge <package-name>

或者在Synaptic中选择“标记为完全删除”而不仅仅是“标记为删除”。
至于手动编译和安装的应用程序,没有一种通用的方法来卸载它们。最好的做法是查阅随源代码包附带的README/INSTALL文件(如果有的话)。

1你需要在特定的目录下吗?出于某种原因,它无法找到我的包裹。 - JobHunter69
3Ubuntu 16.04默认情况下没有“系统”->“管理”或者Synaptic安装。 - Dan Dascalescu
5这也可以:sudo apt remove <application_name>(Ubuntu 18.04.1 LTS) - Yuci

软件中心:找到程序包,点击移除。

In the "installed" tab, search for the program; a "remove" button shows at the bottom right of the program description

Synaptic 安装synaptic:相同

A program selected with the option "mark for complete removal"


  • apt-get:

      sudo apt-get remove <package> && sudo apt-get autoremove
    
  • aptitude:

      sudo aptitude remove <package>
    
请注意,在安装软件的时候,通常会依赖其他包。当你执行apt-get remove <package>命令时,默认情况下不会删除自动安装的应用程序。这通常更安全(比如临时删除ubuntu-desktop),但也可能导致系统中存在大量无用文件。
而aptitude将自动移除这些文件(同时还有一个友好的交互命令行界面)。
你也可以在synaptic中使用“本地或过时”筛选器,在状态部分查找无用文件。

1apt-get版本可以更短、更简单:sudo apt-get autoremove <package> - DJCrashdummy
+1 对于自动删除来说,看起来它也会删除随原始程序一起安装的依赖项?保持整洁很好。 - fIwJlxSzApHEZIl

要找到您想要移除的软件包,请使用以下方法:
dpkg --list

复制软件包名称,然后使用命令

sudo apt-get purge <paste copied package name>

然后输入您的密码。

这里列出了可能的方法:
如果软件包是通过软件包管理器安装的,您可以使用下面这些工具之一将其卸载:
- `dpkg --remove`:最基本的命令行工具。建议避免使用。 - `apt-get remove` 或 `aptitude remove`:这些是标准的命令行工具。稍微推荐使用 Aptitude,因为它更加复杂。例如,它可以记录所有软件包操作的日志文件。 - `synaptic`:GUI 工具,可通过 GUI 菜单中的“系统/管理”访问。支持所有功能,通常是一个非常好的程序。 - `software center`:比 `synaptic` 更好的 GUI 工具。这是旧版“添加/删除程序”的更新版本。
所有这些工具都能完成任务。您可以从最用户友好的(Software Center)开始,如果需要特定功能或经常安装或卸载程序,则可以使用aptitude。
请注意,这些操作会删除程序的大部分内容,但有时会在诸如/etc/apache2之类的位置留下“配置文件”。大多数软件都不会在那里有配置文件;而一些服务器软件(“守护进程”)则会有。除了极少数情况外,保留这些配置文件不会造成任何损害。如果您想删除所有内容,包括配置文件,则可以使用“清除”操作。对于aptitude来说,命令行是“aptitude purge”。(汤米上面关于“清除”的解释是不准确的。“删除”操作和“清除”一样,会删除与原始程序一起安装的所有依赖项。)
如果程序告诉您该软件包已被删除,您可以确定文件已经不存在了。有时作为依赖关系安装的软件包不会立即被删除。它们最终将在后续运行中被删除。
至于从其他渠道安装的软件(通常是从源代码编译),您大多数情况下需要手动删除已安装的文件。它们通常位于/usr/local等位置。有些软件提供了“make uninstall”等快捷方式。不过不要指望它,更常见的解决方案是使用通过Ubuntu软件仓库提供的版本,可以进行干净的卸载。

GUI方法

Ubuntu软件

最简单的方法是使用Ubuntu软件(或在Ubuntu 16.04LTS之前的版本中使用Ubuntu软件中心)。打开Ubuntu软件,点击已安装选项卡,选择您想要卸载的应用程序,然后点击移除按钮。

Uninstall Apps using Software

Uninstall Apps using Software Center

Unity Dash(从Ubuntu 12.10到17.10)

Ubuntu 12.10引入了Unity 6,其中包括了预览功能。所以,从Ubuntu 12.10开始,你只需要在Unity Dash上的(几乎)任何应用图标上右键点击然后选择卸载即可。请注意,这在Ubuntu 18.04 LTS及以上版本不适用,因为放弃了Unity桌面环境并采用了GNOME作为新的桌面环境。

Unity Dash Uninstall Apps from Unity Dash

Synaptic

Synaptic 是一款高级的软件包管理工具,比其他图形界面方法如Ubuntu Software、Unity Dash等更加灵活。事实上,在 Ubuntu 10.04 之前,它是默认的应用程序管理器。要安装 Synaptic,请点击这里:
通过 Ubuntu Software 安装

或者在终端中运行以下命令:

sudo apt install synaptic

通过Synaptic卸载应用程序,标记要删除的软件包,然后点击“应用”按钮:

Uninstall Apps using Synaptic


命令行方法

这些是为命令行爱好者准备的。它们非常基础,但提供了更高级的控制和轻量级。

apt

apt(新的和简化的apt-get)是最常用的包管理命令行工具。使用以下命令卸载任何应用程序:

sudo apt remove <app_name>

记得用你想要卸载的应用程序的包名替换。
aptitude aptitude并不完全是一个命令行工具,因为它有一个基于ncurses的交互式GUI。然而,可以使用以下命令:
sudo aptitude remove <app_name>

快照

Ubuntu 16.04LTS及更高版本支持快照包,但也可以通过更新安装在Ubuntu 14.04LTS上。要卸载快照应用程序,请尝试以下操作:

snap remove <app_name>

如果那行不通:

sudo snap remove <app_name>

请注意,上述所有方法仅适用于通过软件包管理(如Ubuntu Software、Synaptic、apt、snap等)正常安装的应用程序,而不适用于使用某些根脚本手动安装或直接复制到主目录的软件。尽管上述方法看起来非常不同,但它们都使用相同的APT或Snappy软件包管理器后端。还有许多其他安装/卸载应用程序的方法,但涉及APT或Snappy的方法是推荐和最受欢迎的方法。

sudo apt-get purge <package_name>

sudo aptitude purge <package_name>

当你进行清理操作时,aptitude会同时删除安装在一起的依赖包和软件包。

卸载项目或软件包的各种方法有哪些?命令行工具,
  • 能力

    默认情况下,您的Ubuntu系统上没有安装aptitude。因此,请运行以下命令(sudo apt-get install aptitude)来安装它。

    要通过aptitude卸载软件包,请运行以下命令(sudo aptitude purge package

  • apt-get

    sudo apt-get purge package
    
  • dpkg

    sudo dpkg -P package
    

图形用户界面工具,

  • 软件中心

  • Synaptic软件包管理器

哪些方法总是有效的?

上述提到的所有方法都可以用于卸载软件包。

如何确保某个软件已被卸载?

您可以通过运行apt-cache policy package命令来检查软件包是否成功卸载,

示例:

avi@avi-Lenovo-IdeaPad-Z500:~$ sudo apt-cache policy vlc vlc: Installed: 2.0.8+git20131210+r49167+13+8~ubuntu13.10.1 Candidate: 2.0.8+git20131210+r49167+13+8~ubuntu13.10.1 Version table: *** 2.0.8+git20131210+r49167+13+8~ubuntu13.10.1 0 500 http://ppa.launchpad.net/videolan/stable-daily/ubuntu/ saucy/main amd64 Packages 100 /var/lib/dpkg/status 2.0.8-1 0 500 http://mirror.sov.uk.goscomb.net/ubuntu/ saucy/universe amd64 Packages 500 http://archive.ubuntu.com/ubuntu/ saucy/universe amd64 Packages
在上述情况下,运行apt-cache policy命令时,显示了vlc软件包的已安装字段为:
Installed: 2.0.8+git20131210+r49167+13+8~ubuntu13.10.1

avi@avi-Lenovo-IdeaPad-Z500:~$ sudo apt-cache policy chromium-browser chromium-browser: 已安装: (无) 候选版本: 32.0.1700.102-0ubuntu0.13.10.1~20140128.970.1 版本表: 32.0.1700.102-0ubuntu0.13.10.1~20140128.970.1 0 500 http://mirror.sov.uk.goscomb.net/ubuntu/ saucy-updates/universe amd64 Packages 500 http://mirror.sov.uk.goscomb.net/ubuntu/ saucy-security/universe amd64 Packages 29.0.1547.65-0ubuntu2 0 500 http://mirror.sov.uk.goscomb.net/ubuntu/ saucy/universe amd64 Packages 500 http://archive.ubuntu.com/ubuntu/ saucy/universe amd64 Packages
但是运行apt-cache policy chromium-browser命令后,已安装字段显示为none。这意味着该软件包未安装。
Installed: (none)

在某些情况下,即使执行了其他答案中提到的命令,仍然会存在一些依赖关系。例如,在this场景中,OP安装了CCSM(Compiz配置设置管理器),但仅删除CCSM并不能删除安装它时所需的所有依赖项,并且会留下许多不再使用的软件包,如compiz-core, compiz-gnome, compiz-plugins, compiz-plugins-default, libcompizconfig0, python-compizconfig等。

在所有这些情况下,使用sudo apt-get autoremovesudo aptitude autoremove可以删除所有这些未使用的依赖项。

编辑:我的回答是对Oli现有答案的扩展。


对于自定义安装的软件(例如./install.sh),你可以寻找一个./uninstall.sh。或者你可以尝试再次运行./install.sh,它可能会给你一个卸载选项。

我已经尝试过这个,在终端上运行得很好!
sudo apt autoremove <Package name>

对于软件包名称,您可以输入软件包或软件的首字母等,并按下Tab键。