BWH Compass

管理软件包:先识别系统,再使用 APT 或 DNF

找不到 apt,通常应先确认发行版,而不是直接下载安装脚本。软件包锁也往往意味着另一个更新任务仍在工作。

BWH Compass 编辑整理更新于 约 4 分钟阅读

1. 先确认发行版,再选包管理器#

Ubuntu、Debian 使用 APT;Rocky、AlmaLinux 等 RHEL 系通常使用 DNF。apt: command not found 不一定是系统损坏,可能只是你在另一类发行版上运行了错误命令。

bash
cat /etc/os-release
command -v apt
command -v dnf

同一台机器不要混装不同发行版的软件源。教程中的包名也可能随版本不同而变化,先用搜索和包信息确认,再安装。

2. APT 的常用操作与含义#

bash
sudo apt update
apt search nginx
apt show nginx
sudo apt install nginx
apt list --upgradable

update 更新软件索引,不会把所有软件升级;install 安装指定包及其依赖。系统更新前运行 apt list --upgradable 查看范围,再执行 sudo apt upgrade,阅读可能重启服务的提示。

删除软件时,remove 通常保留部分配置,purge 会进一步删除包管理器管理的配置。两者都不等于完整业务备份或彻底清除所有应用数据,操作前先确认网站、数据库和自建目录。

3. DNF 的对应操作#

bash
sudo dnf check-update
dnf search nginx
dnf info nginx
sudo dnf install nginx
sudo dnf upgrade

dnf check-update 发现可更新包时可能返回专用状态码,不能只凭非零退出码判断故障。安装前核对官方软件源和应用要求,不要为了找到某个包随意添加未知仓库。

第三方仓库需要按发布者官方文档添加签名密钥和源配置。不要使用跳过签名验证作为常规安装方式;旧教程里的 apt-key、已停用镜像地址也应替换为当前支持的方法。

4. 遇到 APT 锁,先找正在运行的任务#

系统自动更新与手动安装可能同时抢锁。看到 /var/lib/dpkg/lock 或 lock-frontend 被占用时,先查看提示中的进程和后台更新状态。

bash
ps -ef | grep -E 'apt|dpkg|unattended'
systemctl status apt-daily.service apt-daily-upgrade.service

如果正在正常安装,等待其完成。不要直接删除锁文件或杀死 dpkg;锁文件存在本身不等于锁被占用,强行并发操作会破坏软件包状态。

5. 中断安装后的恢复顺序#

确认没有其他包管理进程运行后,检查未完成配置,并按提示修复依赖。

bash
sudo dpkg --audit
sudo dpkg --configure -a
sudo apt --fix-broken install

执行前阅读拟安装、升级或删除的包列表;若提示要移除数据库或关键服务,先停止并调查原因。磁盘满了要先释放安全空间,不能靠反复运行修复命令解决。

维护结束检查相关服务是否正常,必要时做计划重启。继续阅读系统升级磁盘空间检查进程监控

完成后检查

保留软件源和安装记录。有依赖冲突时,先解释来源冲突再继续,避免盲目强制安装。

官方资料与相关入口