docs: 更新Linux软件安装文档,添加yum/dnf区别及仓库配置详解

This commit is contained in:
wenyongda 2026-07-03 15:45:45 +08:00
parent 67c98a5d35
commit f564ff75dd

View File

@ -54,10 +54,19 @@ yum makecache
#### 更换阿里源 #### 更换阿里源
```shell ```shell
yum install -y wget && sed -e 's|^mirrorlist=|#mirrorlist=|g' \
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup && -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && -i.bak \
yum clean all && /etc/yum.repos.d/[Rr]ocky*.repo
# 注意 8 系列 Rocky R 大些9 系列 r 小写 (sysin)
# 阿里云文档有误无法匹配https://developer.aliyun.com/mirror/rockylinux
# 恢复 (sysin)
sed -e 's|^#mirrorlist=|mirrorlist=|g' \
-e 's|^baseurl=https://mirrors.aliyun.com/rockylinux|#baseurl=http://dl.rockylinux.org/$contentdir|g' \
-i.bak \
/etc/yum.repos.d/[Rr]ocky*.repo
yum makecache yum makecache
``` ```
@ -88,6 +97,172 @@ dnf clean all
--- ---
### yum / dnf / dnf5 区别
| 特性 | yum | dnf | dnf5 |
| --- | --- | --- | --- |
| 语言 | Python | Python (C 底层) | C++ |
| 默认版本 | CentOS 7 | CentOS 8 / Fedora 22~38 | Fedora 39+ / RHEL 10 |
| 依赖解析 | 速度慢 | 速度快libsolv 引擎 | 更快Rust 重写核心 |
| 事务历史 | 支持 | 支持 | 支持API 更强 |
| 插件体系 | 旧 | 兼容 yum 插件 | 全新插件架构 |
| 向后兼容 | — | `dnf` 命令兼容 `yum` | `dnf` 指向 `dnf5`(软链接) |
> **简单理解**`dnf``yum` 的现代替代,`dnf5``dnf` 的下一代重写。三者命令行语法基本一致,日常使用无需区分。
---
### yum.repos.d 配置详解
#### 目录结构
```shell
/etc/yum.repos.d/
├── CentOS-Base.repo # 基础源
├── CentOS-AppStream.repo # 应用流
├── CentOS-PowerTools.repo # 扩展工具
├── epel.repo # EPEL 扩展源
├── nginx.repo # 自定义第三方源
└── ...
```
> 所有 `.repo` 文件都会被自动加载,文件名任意,关键是 `.repo` 后缀。
#### .repo 文件结构
```ini
[repo-id] # 仓库唯一标识,同一文件内不能重复
name=Repository Name # 仓库描述名称
baseurl= # 仓库地址(三选一或组合)
# mirrorlist= # 镜像列表 URL与 baseurl 二选一)
# metalink= # 元数据校验 URL
enabled=1 # 是否启用1 启用0 禁用)
gpgcheck=1 # 是否校验包 GPG 签名
repo_gpgcheck=0 # 是否校验仓库元数据 GPG 签名
gpgkey= # GPG 公钥地址
metadata_expire=24h # 元数据缓存过期时间24h / 6h / 1d / 1h
countme=1 # 是否上报系统架构统计1 开启0 关闭)
priority= # 优先级(需安装 dnf-plugins-core
module_hotfixes=true # 是否跳过模块过滤DNF 专用)
```
#### baseurl 支持的协议
| 协议 | 示例 |
| --- | --- |
| http/https | `baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/` |
| file (本地) | `baseurl=file:///mnt/cdrom/` |
| ftp | `baseurl=ftp://mirror.example.com/pub/centos/` |
> 多个地址可用 `$releasever``$basearch` 等变量自动替换版本和架构。
#### 常用变量
| 变量 | 说明 | 示例值 |
| --- | --- | --- |
| `$releasever` | 系统主版本号 | `8` / `9` |
| `$basearch` | CPU 架构 | `x86_64` / `aarch64` |
| `$contentdir` | 内容目录 | `os` / `repo` |
| `$infra` | 基础设施类型 | `stock` / `container` |
#### 常用操作
```shell
# 列出所有已启用的仓库
dnf repolist
# 列出所有仓库(含禁用的)
dnf repolist all
# 临时禁用某个仓库
dnf --disablerepo=epel install package
# 临时启用某个仓库
dnf --enablerepo=cr install package
# 查看仓库详细信息
dnf repoinfo epel
# 清理并重建缓存
dnf clean all && dnf makecache
```
#### 自定义仓库配置示例
创建 `/etc/yum.repos.d/custom.repo`
```ini
[custom-repo]
name=Custom Repository
baseurl=https://mirror.example.com/centos/8/AppStream/x86_64/os/
enabled=1
gpgcheck=1
gpgkey=https://mirror.example.com/RPM-GPG-KEY-custom
```
#### 优先级配置
安装 `dnf-plugins-core` 后可设置优先级:
```shell
dnf install dnf-plugins-core
```
`.repo` 文件中添加 `priority`
```ini
[base]
name=CentOS Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
enabled=1
gpgcheck=1
priority=1 # 优先级1 最高99 最低
[epel]
name=EPEL
baseurl=https://mirrors.aliyun.com/epel/8/Everything/$basearch/
enabled=1
gpgcheck=1
priority=10
```
> 建议:官方源 `priority=1`EPEL 等第三方源 `priority=10`,避免覆盖系统核心包。
#### 忽略仓库
```shell
# 临时忽略单个仓库
dnf --disablerepo=epel install package
# 永久禁用
# 编辑 .repo 文件,将 enabled=1 改为 enabled=0
```
#### GPG 签名管理
```shell
# 导入 GPG 密钥
rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
# 查看已导入的密钥
rpm -qa gpg-pubkey*
# 删除密钥
rpm -e gpg-pubkey-xxxxxxxx-xxxxxxxx
```
#### 备份与恢复
```shell
# 备份所有 repo 文件
cp -r /etc/yum.repos.d/ /etc/yum.repos.d.bak/
# 恢复
cp -r /etc/yum.repos.d.bak/* /etc/yum.repos.d/
```
---
## wget 下载工具 ## wget 下载工具
### 基本语法 ### 基本语法
@ -1265,6 +1440,25 @@ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:
git clone https://gitee.com/pocmon/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone https://gitee.com/pocmon/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
``` ```
#### fzf
[Fzf](https://github.com/junegunn/fzf) 是一个命令行模糊查找工具,支持文件、历史命令、进程等搜索。
安装
- RHEL
```bash
dnf install epel-release
dnf install fzf
```
- Ubuntu
```bash
apt install fzf
```
#### z内置 #### z内置
文件夹快捷跳转插件,输入目标文件夹名称即可快速跳转。 文件夹快捷跳转插件,输入目标文件夹名称即可快速跳转。