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 安装并确认配置文件归属包,若冲突可通过参数修复。


六、练习题(带操作目标)#

  1. 安装与查询
    - 目标:安装 curl,并查看其包信息
    - 提示:dnf/apt install + dnf info / apt show

  2. 文件归属定位
    - 目标:找出 /usr/bin/awk 属于哪个包
    - 提示:dnf providesdpkg -S

  3. 依赖修复
    - 目标:模拟依赖问题并修复
    - 提示:APT 使用 apt --fix-broken install;DNF 使用 --allowerasing

  4. 版本锁定
    - 目标:锁定 nginx 版本防止升级
    - 提示:dnf versionlock add nginxapt-mark hold nginx