apt remove 和 apt purge: 有什么区别?
创始人
2024-03-02 14:12:18
0

如果你想 在 Ubuntu 上使用终端卸载软件,可以使用:

sudo apt remove package_name

但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用 apt purge

你可能会觉得很困惑,因为 apt purgeapt remove 看起来是一样的。

sudo apt purge package_name

为什么会有两个如此像的命令来删除软件包呢?两者之间有什么不同呢?下面将为你揭晓。

apt-remove 和 apt-purge 有什么不同?

apt-removeapt-purge 的相同之处就是都可以卸载软件包,但是运行 apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户主目录中相关的应用程序文件。

你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。这是因为用 apt remove 不能删除该软件的相关配置文件。

哪些东西被删除了?哪些还在?

我分享一个使用 apt removeapt purge 两个命令分别卸载 mplayer 这个软件的实际例子。重点是看每次操作后还残余哪些文件。

这是删除前的文件:

mplayer before removal

现在运行 apt remove 这个命令:

apt uninstall package ubuntu

下面的是还残留在系统中的文件:

files after mplayer removal

我们可以看到,有两个地方残留着 mplayer 的文件: /etc/home/abhishek

这次我们重新安装 mplayer,然后用 apt purge 来卸载软件。

apt purge command

现在让我们看看与 mplayer 相关的文件:

files after mplayer removal

我们可以看到 /etc 目录下的文件已经没有了。

但是在主目录中的文件呢?apt purge 会删除它们吗?

答案是否定的。apt 命令不会删除主目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。

值得注意的是,不是所有的软件在主目录或者 /etc 目录下都有配置文件。

使用 apt remove 或者 apt purge 的效果

我能想到的一个实际例子就是 Discord,你用 deb 文件 在 Ubuntu 上安装了 Discord。然后登录自己的账号,之后又卸载并重新用 deb 文件安装。

现在如果你打开 Discord,你会发现你的账号自动登录了。是不是觉得很奇怪?

这是个功能,像一些软件,比如 Discord、VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。

当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用 apt remove

但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用 apt purge 就比较合适。

运行 apt purge 是否可以用通配符删除?

当你删除一个包的时候,它会提示 removing package-name*。这意味着它会删除以这个包名开头的所有文件。

apt purge wild card

我在手册页之类的文档中没有找到关于这个问题的答案。所以我自己做了一个小测试,我安装了 espeak 和 espeak-ng 这两个软件,espeak* 应该可以通配扩展到 espeak-ng。

但是当我用 apt purge 删除 espeak 包时,espeak-ng 包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。

那么,你应该使用 apt remove 还是 apt purge 呢?

很少有人会一直使用 apt purge

在我看来,一般清况下,用 apt remove 就可以了,但是当你想删除那些自定义配置文件时,你就得用 apt purge

不管是用 apt remove 还是 apt purge,你都需要从用户的主目录中删除残余的配置文件,并运行 apt autoremove 来清除任何依赖的包。

现在到你啦。你现在对 apt removeapt purge 的区别更加了解吗?你更喜欢使用哪一个呢?


via: https://itsfoss.com/apt-remove/

作者:Abhishek Prakash 选题:lkxed 译者:Tingze-G 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

美“第一夫人”呼吁打击AI...
本报驻美国特约记者 戴润芝 ●王 策 美国“第一夫人”梅拉尼娅·特...
2025-03-06 09:21:42
在Linux服务器上绑定域...
要把Linux服务器和域名绑定起来,让我们先简单聊聊这个过程。想象...
2025-02-27 13:49:16
原创 ...
据上观新闻报道,中共中央政治局委员、外交部长出席慕尼黑安全会议,在...
2025-02-21 21:46:57
深度deepin 25预览...
deepin深度系统近期发布了其最新版本deepin 25的预览版...
2025-02-06 06:16:56
捕捉块在尝试使用无效对象I...
在JavaScript中,如果想要捕捉块在尝试删除不存在的对象时正...
2025-01-12 16:30:48
不重新生成文件的情况下从文...
在不重新生成文件的情况下,从文本文件中删除行有以下几种解决方法:方...
2025-01-12 14:01:33

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...