必须更换为阿里云镜像源,因默认官方源在国内延迟高、超时多、常卡在元数据检查;需用sed注释mirrorlist、启用baseurl并指向https://mirrors.aliyun.com/rockylinux,再执行dnf clean all && dnf makecache验证生效。

dnf 用默认官方源在大陆地区基本不可用——延迟高、超时多、经常卡在 Last metadata expiration check,直接导致 dnf install 失败或极慢。换阿里云源是必须步骤,不是“可选优化”。
Rocky Linux 9 的 repo 文件名和路径要对得上
Rocky 9 的源配置文件默认放在 /etc/yum.repos.d/rocky-*.repo,常见文件包括:rocky.repo、rocky-extras.repo、rocky-crb.repo 等。注意:Rocky 9.2+ 版本中部分镜像站要求路径里 Rocky 首字母小写(即 rockylinux),否则 baseurl 会 404。
错误示例:https://mirrors.aliyun.com/RockyLinux/9/BaseOS/x86_64/os/ → 404
正确写法:https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/
- 用
ls /etc/yum.repos.d/rocky*.repo确认实际文件名,避免 sed 匹配不到 - 别直接改
$contentdir变量——Rocky 9 默认不启用该变量,硬套会失效 - 如果系统是 Rocky 9.5,确认阿里云镜像站已同步该版本(截至 2026 年 4 月,
rockylinux/9.5/路径已可用)
sed 替换时必须关掉 mirrorlist、打开 baseurl
Rocky 默认启用 mirrorlist=,它会尝试连接海外 DNS 和重定向服务,国内根本走不通。必须注释掉它,并解注 baseurl 行——但注意原始 repo 里 baseurl 是带 # 的,且指向的是官方地址,不能只替换域名。
推荐命令(兼容 9.1–9.5):
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky-*.repo
- 执行后检查:用
grep -E "^(mirrorlist|baseurl)" /etc/yum.repos.d/rocky*.repo确认所有mirrorlist已被注释、所有baseurl指向mirrors.aliyun.com/rockylinux - 别漏掉
-i.bak——没这个参数,sed 不会真正写入文件 - 如果提示 “No such file or directory”,说明
/etc/yum.repos.d/rocky-*.repo匹配不到任何文件,可能是文件名含下划线或大小写不一致(如Rocky-BaseOS.repo)
dnf makecache 前必须 clean all
旧缓存残留会导致 dnf makecache 读到过期元数据,甚至复用错误的 repomd.xml 签名,结果报错:Error: Failed to download metadata for repo 'appstream': Cannot download repomd.xml。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
标准三步顺序不能乱:
dnf clean all dnf makecache dnf --refresh check-update
-
dnf clean all清掉/var/cache/dnf下全部内容,包括 metadata、packages、db_cache -
dnf makecache默认只生成基础元数据;加--refresh强制重新拉取,避免本地缓存污染 - 首次运行耗时约 20–60 秒(取决于网络),期间不要 Ctrl+C,否则缓存状态可能损坏
验证源是否生效的关键信号
别只看 dnf makecache 是否返回 “Metadata cache created”,要看具体仓库是否连得上、解析是否正确。
执行:dnf repolist --all,输出中应看到类似:
appstream Rocky Linux 9 - AppStream-Aliyun enabled baseos Rocky Linux 9 - BaseOS-Aliyun enabled crb Rocky Linux 9 - CRB-Aliyun enabled
- 每行末尾是
enabled,且名字含Aliyun或你自定义的标识,才算成功 - 如果仍显示
Rocky Linux 9 - AppStream(无后缀),说明 sed 没生效,或者dnf makecache读的是旧缓存 - 真实下载速度差异极大:官方源平均 2 MB/s,阿里云实测 15–18 MB/s(上海节点),但前提是
baseurl路径里的版本号(如/9/)和你的VERSION_ID完全一致
换源不是一劳永逸的事。Rocky 小版本升级(如 9.4 → 9.5)后,/etc/yum.repos.d/ 下的 repo 文件可能被包管理器自动更新回官方地址,尤其是通过 dnf update 升级了 rocky-repos 包之后——这点最容易被忽略。










