学习中心/工程实践/Linux/Linux 7:软件从哪来,怎么卸干净
· Linux · 7 · 软件
Linux 7:软件从哪来,怎么卸干净
policy、hold、purge。PPA 是多信任一个人。先别 curl | bash。

软件优先从发行版仓库来
Ubuntu / Debian 用 apt。这一块走完,你该知道一个包从哪来、怎么钉住、怎么卸干净,以及什么时候不该 curl | bash。机器上的软件来路清楚,才谈得上稳。
- 更新apt update
- 装apt install
- 来源policy
- 卸remove / purge
1. 更新索引,再装
- 更新拉仓库目录,不是升级所有软件
sudo apt update - 搜先搜,确认包名
apt search nginx - 看简介、来源、依赖
apt show nginx - 装从仓库装。会问 Y/n
sudo apt install nginx
apt upgrade 才升级已装的包。update 只刷新目录。apt full-upgrade 可能删掉冲突的包,升级前先读它要动谁。
2. 卸干净
- 看装过没有
apt list --installed | grep nginx - 卸卸软件,配置文件可能还在
sudo apt remove nginx - 卸连配置一起走。确认你不再需要那些 conf
sudo apt purge nginx - 卸清掉不再被需要的依赖
sudo apt autoremove
3. 这个文件是谁装的
- 看这个包装了哪些路径
dpkg -L nginx | head - 看这个文件属于哪个包
dpkg -S /usr/sbin/nginx - 看候选版本、来自哪一个仓库、有没有被钉住
apt-cache policy nginx
手工丢进 /usr/local 的文件,dpkg -S 找不到。那是你自己的来路,升级系统时不会管它。
4. 仓库从哪读
- 看主文件和额外源
ls /etc/apt/sources.list /etc/apt/sources.list.d - 看哪一行失败,就是哪个源有问题
sudo apt update 2>&1 | tail
多加一个 PPA,等于多信任一个人。版本冲突、卸不掉、下次发行版升级失败,常常从这里开始。能用发行版自带的,就不要加源。
5. 钉住,别被意外升级冲掉
- 钉upgrade 会跳过它
sudo apt-mark hold nginx - 看当前钉住的
apt-mark showhold - 放允许再升级
sudo apt-mark unhold nginx
6. 不是 Debian 系时
RHEL / Rocky / Fedora 用 dnf(老的是 yum):dnf search、dnf install、dnf remove。Arch 用 pacman。包名会不一样,习惯一样:先官方仓库,再第三方。
7. 先别 curl | bash
仓库没有的软件,才看项目自己的文档。把网上一段 bash 喂给 root,等于把机器交给那篇文章的作者。官方 .deb 也要核对来源和校验和。
snap、flatpak、pip、npm -g 各有各的树。系统服务优先发行版的包,少把语言包管理器当系统包装器用。
8. 安全更新
- 看等着升的。先读再 upgrade
apt list --upgradable - 看有的镜像默认自动装安全更新。知道它在不在
systemctl status unattended-upgrades
这块过关:能说清这个包从哪来,能卸干净,不靠来路不明的脚本装系统服务。下一篇看进程和日志。