Rocky9同步dnf源到本地

在 Rocky Linux 9 上,你可以使用 dnf 或 reposync 工具将远程的 DNF 软件源同步到本地目录(如 /data)。以下是具体步骤:

方法 1:使用 reposync 工具

reposync 是 dnf 的一个工具,专门用于将远程仓库同步到本地。

1. 安装 dnf-utils

如果尚未安装 dnf-utils,先安装它:

 dnf install dnf-utils


2. 创建本地目录

创建一个目录用于存储同步的软件包,例如 /data/repo

mkdir -p /data/repo


3. 同步仓库

使用 reposync 将远程仓库同步到本地。假设你要同步 baseos 和 appstream 仓库:

reposync --download-metadata --download-path=/data/repo --repoid=baseos --repoid=appstream


  • --download-metadata:同时下载仓库元数据(如 repodata)。

  • --download-path:指定本地存储路径。

  • --repoid:指定要同步的仓库 ID。你可以通过 dnf repolist 查看所有仓库 ID。

4. 创建本地仓库元数据

同步完成后,需要为本地仓库生成元数据:

createrepo /data/repo/baseos
createrepo /data/repo/appstream


如果 createrepo 未安装,可以通过以下命令安装:

dnf install createrepo_c


方法 2:使用 dnf 直接下载 RPM 包

如果你只需要下载特定软件包而不是整个仓库,可以使用 dnf download

1. 创建本地目录

mkdir -p /data/rpms


2. 下载软件包

例如,下载 nginx 和 httpd 的 RPM 包:

dnf download --destdir=/data/rpms nginx httpd

--destdir:指定下载的 RPM 包存储路径。




方法 3:使用 rsync 同步远程仓库

如果你有远程仓库的访问权限,可以直接使用 rsync 将远程仓库同步到本地。

1. 安装 rsync

dnf install rsync


2. 同步远程仓库

假设远程仓库地址为 rsync://example.com/repo,同步到本地 /data/repo

rsync -avz rsync://example.com/repo /data/repo


  • -a:归档模式,保留文件属性。

  • -v:显示详细信息。

  • -z:压缩传输。


验证同步结果

同步完成后,检查 /data 目录下的内容:

ls -l /data/repo


如果同步的是完整仓库,确保 repodata 目录存在。


配置本地仓库

如果你希望将本地仓库作为 DNF 源使用,可以创建一个本地 repo 文件:

1. 创建 repo 文件

vi /etc/yum.repos.d/local.repo


2. 添加以下内容

[local-repo]
name=Local Repository
baseurl=file:///data/repo
enabled=1
gpgcheck=0


3. 清理缓存并测试

dnf clean all
dnf repolist


Powered By Z-BlogPHP 1.7.3

 Theme By 优美模版

本博客为开源博客,本博客联系QQ:372097243