步骤 1:安装 yum-utils
安装了 yum-utils
工具包,其中包含 yumdownloader
命令。
yum install yum-utils
步骤 2:创建目标目录
创建一个目录来存放所有下载的 RPM 包。
mkdir -p /path/to/repo
步骤 3:列出所有已安装的包
使用 rpm
命令列出所有已安装的包,并将包名输出到一个文件中:
rpm -qa --qf "%{NAME}\n" > installed_packages.txt
通过cat指令,查看本机已安装的包。
步骤 4:下载所有已安装的包
使用 yumdownloader
工具批量下载所有已安装的包。你可以使用 xargs
命令来读取 installed_packages.txt
文件,并逐个下载包:
cat installed_packages.txt | xargs -I {} yumdownloader --destdir=/path/to/repo {}
这一步比较漫长,需要一个个包保存。
下载完成后的文件夹,里面包含rpm包。
步骤 5:创建仓库元数据
在下载完所有 RPM 包后,使用 createrepo
命令来生成仓库的元数据:
yum install createrepo
createrepo /path/to/repo
生成repodata文件夹,里面保存了仓库信息
步骤 6:配置本地仓库
在需要使用这个本地仓库的机器上,创建一个新的 yum
仓库配置文件,例如 /etc/yum.repos.d/local.repo
:
[local-repo]
name=Local Repository
baseurl=file:///path/to/repo
enabled=1
gpgcheck=0
注意:/path/to/repo
应该是实际路径。
配置成下图这样即可,类似于这种的
总结
-
保存依赖关系:使用
yumdownloader
时,它会自动处理依赖关系,但仅限于你当前系统上安装的版本。如果希望包含所有依赖包,可以考虑使用reposync
来同步整个仓库。 -
脚本自动化:可以将上述步骤编写成脚本,以便重复使用。例如:
#!/bin/bash
# 目标目录
REPO_DIR=/path/to/repo
# 创建目标目录
mkdir -p $REPO_DIR
# 列出所有已安装的包
rpm -qa --qf "%{NAME}\n" > installed_packages.txt
# 下载所有已安装的包
cat installed_packages.txt | xargs -I {} yumdownloader --destdir=$REPO_DIR {}
# 创建仓库元数据
createrepo $REPO_DIR
# 配置本地仓库
cat <<EOF > /etc/yum.repos.d/local.repo
[local-repo]
name=Local Repository
baseurl=file://$REPO_DIR
enabled=1
gpgcheck=0
EOF
通过上述步骤,你可以一次性导出当前计算机上所有已安装的 yum
包,并创建一个本地 yum
仓库。