1.4.2 YUM/DNF/APT基础操作与常用参数
本节聚焦 YUM/DNF/APT 的日常运维操作与常用参数,覆盖安装、更新、查询、清理、源选择与排障,并给出可执行示例、命令解释与练习。
一、YUM/DNF 基础操作#
1. 原理草图(YUM/DNF 工作流)#
2. 安装与更新(示例 + 解释)#
- 安装 nginx(含确认参数与预期输出)
# 安装 nginx,-y 自动确认
sudo dnf install -y nginx
# 预期:输出 Installed: nginx-<version>
- 更新系统与指定包
# 升级所有可更新包
sudo dnf upgrade -y
# 仅更新 openssl
sudo dnf update -y openssl
- 命令解释
install:安装新包并自动解析依赖update/upgrade:升级已安装包,upgrade会处理淘汰包
3. 删除与回滚(示例 + 解释)#
# 删除 nginx
sudo dnf remove -y nginx
# 查看历史
sudo dnf history
# 回滚到某次事务(以 ID=12 为例)
sudo dnf history undo 12
- 命令解释
history:查看事务历史history undo <ID>:回滚到指定事务前状态
4. 查询与检索(示例 + 解释)#
# 搜索包
dnf search nginx
# 查看包信息
dnf info nginx
# 查找文件属于哪个包
dnf provides /etc/nginx/nginx.conf
5. 清理与缓存(示例 + 解释)#
# 清理缓存
sudo dnf clean all
# 构建缓存(离线安装前建议执行)
sudo dnf makecache
二、APT 基础操作#
1. 原理草图(APT 工作流)#
2. 安装与更新(示例 + 解释)#
# 更新索引
sudo apt update
# 安装 nginx
sudo apt install -y nginx
# 升级系统
sudo apt upgrade -y
- 命令解释
update:刷新索引install:安装包并处理依赖upgrade:升级已安装包,不移除包
3. 删除与清理(示例 + 解释)#
# 删除包但保留配置
sudo apt remove -y nginx
# 完全删除含配置
sudo apt purge -y nginx
# 清理无用依赖
sudo apt autoremove -y
# 清理缓存
sudo apt clean
4. 查询与检索(示例 + 解释)#
# 搜索
apt search nginx
# 查看包详情
apt show nginx
# 列出已安装
apt list --installed | grep nginx
# 查询文件归属
dpkg -S /etc/nginx/nginx.conf
三、常用参数与技巧(示例 + 解释)#
1. 通用参数#
# 免确认
sudo dnf install -y vim
sudo apt install -y vim
# 禁用插件(DNF/YUM)
sudo dnf install --noplugins -y vim
2. 指定源与临时启用#
# 仅使用某个 repo(DNF)
sudo dnf install -y nginx --disablerepo="*" --enablerepo="epel"
# APT 使用临时源文件
sudo apt -o Dir::Etc::sourcelist=/tmp/sources.list \
-o Dir::Etc::sourceparts="-" update
3. 版本选择与锁定#
# 指定版本安装
sudo dnf install -y nginx-1.20.1
sudo apt install -y nginx=1.18.0-0ubuntu1
# 版本锁定(DNF)
sudo dnf install -y 'dnf-command(versionlock)'
sudo dnf versionlock add nginx
# 版本锁定(APT)
sudo apt-mark hold nginx
四、常见排障要点(示例 + 解释)#
1. 依赖冲突#
# DNF 放宽依赖选择
sudo dnf install -y <pkg> --allowerasing --nobest
# APT 修复断依赖
sudo apt --fix-broken install
2. 源不可用/超时#
# DNF 清缓存后重建
sudo dnf clean all
sudo dnf makecache
# APT 重新拉取索引
sudo apt update
- 排查建议
- 确认 DNS:
ping -c 3 mirrors.aliyun.com - 检查代理与防火墙:
curl -I https://mirrors.aliyun.com
3. 元数据异常#
# DNF 强制刷新缓存
sudo dnf clean metadata
sudo dnf makecache
# APT 清理索引并重建
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
五、综合示例:从安装到排错的完整流程#
# 1) 刷新索引
sudo dnf makecache
# 2) 安装 nginx
sudo dnf install -y nginx
# 3) 查询配置文件归属
dnf provides /etc/nginx/nginx.conf
# 4) 若依赖冲突,尝试放宽策略
sudo dnf install -y nginx --allowerasing --nobest
# 5) 清理缓存
sudo dnf clean all
预期效果:完成 nginx 安装并确认配置文件归属包,若冲突可通过参数修复。
六、练习题(带操作目标)#
-
安装与查询
- 目标:安装curl,并查看其包信息
- 提示:dnf/apt install+dnf info / apt show -
文件归属定位
- 目标:找出/usr/bin/awk属于哪个包
- 提示:dnf provides或dpkg -S -
依赖修复
- 目标:模拟依赖问题并修复
- 提示:APT 使用apt --fix-broken install;DNF 使用--allowerasing -
版本锁定
- 目标:锁定 nginx 版本防止升级
- 提示:dnf versionlock add nginx或apt-mark hold nginx