学习中心/工程实践/Linux/Linux 7:软件从哪来,怎么卸干净

· Linux · 7 · 软件

Linux 7:软件从哪来,怎么卸干净

policy、hold、purge。PPA 是多信任一个人。先别 curl | bash。

正在加载录音…

软件优先从发行版仓库来

Ubuntu / Debian 用 apt。这一块走完,你该知道一个包从哪来、怎么钉住、怎么卸干净,以及什么时候不该 curl | bash。机器上的软件来路清楚,才谈得上稳。

  1. 更新apt update
  2. 装apt install
  3. 来源policy
  4. 卸remove / purge

1. 更新索引,再装

  • 更新
    拉仓库目录,不是升级所有软件sudo apt update
  • 搜
    先搜,确认包名apt search nginx
  • 看
    简介、来源、依赖apt show nginx
  • 装
    从仓库装。会问 Y/nsudo apt install nginx

apt upgrade 才升级已装的包。update 只刷新目录。apt full-upgrade 可能删掉冲突的包,升级前先读它要动谁。

2. 卸干净

  • 看
    装过没有apt list --installed | grep nginx
  • 卸
    卸软件,配置文件可能还在sudo apt remove nginx
  • 卸
    连配置一起走。确认你不再需要那些 confsudo 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. 安全更新

  • 看
    等着升的。先读再 upgradeapt list --upgradable
  • 看
    有的镜像默认自动装安全更新。知道它在不在systemctl status unattended-upgrades

这块过关:能说清这个包从哪来,能卸干净,不靠来路不明的脚本装系统服务。下一篇看进程和日志。

同模块

工程实践 →