1. 先确认发行版,再选包管理器#
Ubuntu、Debian 使用 APT;Rocky、AlmaLinux 等 RHEL 系通常使用 DNF。apt: command not found 不一定是系统损坏,可能只是你在另一类发行版上运行了错误命令。
cat /etc/os-release
command -v apt
command -v dnf同一台机器不要混装不同发行版的软件源。教程中的包名也可能随版本不同而变化,先用搜索和包信息确认,再安装。
2. APT 的常用操作与含义#
sudo apt update
apt search nginx
apt show nginx
sudo apt install nginx
apt list --upgradableupdate 更新软件索引,不会把所有软件升级;install 安装指定包及其依赖。系统更新前运行 apt list --upgradable 查看范围,再执行 sudo apt upgrade,阅读可能重启服务的提示。
删除软件时,remove 通常保留部分配置,purge 会进一步删除包管理器管理的配置。两者都不等于完整业务备份或彻底清除所有应用数据,操作前先确认网站、数据库和自建目录。
3. DNF 的对应操作#
sudo dnf check-update
dnf search nginx
dnf info nginx
sudo dnf install nginx
sudo dnf upgradednf check-update 发现可更新包时可能返回专用状态码,不能只凭非零退出码判断故障。安装前核对官方软件源和应用要求,不要为了找到某个包随意添加未知仓库。
第三方仓库需要按发布者官方文档添加签名密钥和源配置。不要使用跳过签名验证作为常规安装方式;旧教程里的 apt-key、已停用镜像地址也应替换为当前支持的方法。
4. 遇到 APT 锁,先找正在运行的任务#
系统自动更新与手动安装可能同时抢锁。看到 /var/lib/dpkg/lock 或 lock-frontend 被占用时,先查看提示中的进程和后台更新状态。
ps -ef | grep -E 'apt|dpkg|unattended'
systemctl status apt-daily.service apt-daily-upgrade.service如果正在正常安装,等待其完成。不要直接删除锁文件或杀死 dpkg;锁文件存在本身不等于锁被占用,强行并发操作会破坏软件包状态。
5. 中断安装后的恢复顺序#
确认没有其他包管理进程运行后,检查未完成配置,并按提示修复依赖。
sudo dpkg --audit
sudo dpkg --configure -a
sudo apt --fix-broken install执行前阅读拟安装、升级或删除的包列表;若提示要移除数据库或关键服务,先停止并调查原因。磁盘满了要先释放安全空间,不能靠反复运行修复命令解决。
维护结束检查相关服务是否正常,必要时做计划重启。继续阅读系统升级、磁盘空间检查和进程监控。
完成后检查
保留软件源和安装记录。有依赖冲突时,先解释来源冲突再继续,避免盲目强制安装。