TranslateProject/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md

124 lines
5.5 KiB
Markdown
Raw Normal View History

[#]: subject: "apt remove vs apt purge: Whats the Difference?"
[#]: via: "https://itsfoss.com/apt-remove/"
[#]: author: "Abhishek Prakash https://itsfoss.com/"
[#]: collector: "lkxed"
[#]: translator: "Tngze-G"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
apt remove 和 apt purge: 有什么区别?
======
如果你想在Ubuntu服务器上卸载软件可以使用
```
sudo apt remove package_name
```
但是在很多论坛你可能会看到别人说如果你想彻底删除软件就用the apt purge。
你可能会觉得很困惑因为apt purge 和apt remove 看起来是一样的。
```
sudo apt purge package_name
```
为什么会有两个如此像的命令删除安装包呢?两者之间有什么不同呢?下面将为您揭晓
### apt-remove和 apt-purge有什么不同
apt-remove 和 apt-purge相同之处就是都可以卸载安装包 但是运行apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户家目录中相关的应用程序文件。
你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。
这是因为用 apt remove 不能删除该软件的相关配置文件。
#### 哪些东西被删除了?哪些还在?
我用这两个命令分别卸载一下mplayer这个软件看看卸载之后残留什么文件。
我分享一个使用apt remove和apt purge两个命令分别卸载mplayer这个软件的实际例子。重点是看每次操作后还残余哪些文件。
这是删除前的文件
![mplayer before removal][2]
现在运行 apt remove 这个命令
![apt uninstall package ubuntu][3]
下面的是还残留在系统中的文件
![files after mplayer removal][4]
我们可以看到有两个地方残留着mplayer的文件: /etc 和 /home/abhishek.
这次我们重新安装mplayer然后用apt purge 来卸载软件。
![apt purge command][5]
现在让我们看看与mplayer相关的文件
![files after mplayer removal][6]
我们可以看到/etc目录下的文件已经没有了。
但是在家目录中的文件呢apt purge会删除它们吗
答案是否定的。apt命令不会删除家目录中的配置文件。所以它们仍然在系统中除非你手动删除。但是这些文件所占的空间真的很小几乎不占磁盘空间。
值得注意的是,不是所有的软件在家目录或者 /etc目录下都有配置文件。
#### 使用 apt remove 或者 apt purge的效果
我能想到的一个实际例子就是discord 你用deb文件 [在Ubuntu上安装了Discord][7]. 然后登录自己的账号之后又卸载并重新用deb文件安装。
现在如果你打开Discord你会发现你的账号自动登录了。是不是觉得很奇怪
这个现象就像是一些软件比如DiscordVirtualBox它们会提供更新就是卸载现在的版本然后下载新的尽管你不知道它内部怎么进行的但是它在卸载的时候这些软件的配置文件没有被删除所以等你打开这些软件的时候就会自动登录。
当你想卸载一个软件但是想保留你过去使用该软件留下的配置文件的时候你就可以用apt remove。
但是有时候用它不能满足你的需求比如当你没有配置好一个软件的时候你想要重新开始这个时候用apt purge就比较合适。
#### 运行apt purge 是否可以删除通配符?
当你删除一个包的时候它会提示removing package-name*. 这意味着它会删除以这个包名开头的所有文件
![apt purge wild card][8]
我在文档中没有找到关于这个问题的答案 (i.e. man page)。 所以我自己做了一个小测试我安装了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 remove和apt purge的区别有更了解吗你更喜欢使用哪一个呢
--------------------------------------------------------------------------------
via: https://itsfoss.com/apt-remove/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[Tingze-G](https://github.com/Tingze-G)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/apt-remove/
[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png
[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png
[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png
[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png
[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png
[7]: https://itsfoss.com/install-discord-linux/
[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png