在 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