这是一个使用“ httpd”作为软件包进行下载和安装的特定示例。此过程已在CentOS6和CentOS7上进行了测试。
安装所需的东西,并放置放置已下载的RPM的位置:
# yum install yum-plugin-downloadonly yum-utils createrepo
# mkdir /var/tmp/httpd
# mkdir /var/tmp/httpd-installroot
下载RPM。这将使用此处建议的installroot技巧来强制完全下载所有依赖项,因为在该空根目录中未安装任何内容。Yum将在其中创建一些元数据,但我们将全部丢弃。注意,对于CentOS7,releasever
将为“ 7”。
# yum install --downloadonly --installroot=/var/tmp/httpd-installroot --releasever=6 --downloaddir=/var/tmp/httpd httpd
是的,那是小版本。您应该已经看到完整回购下载的大小!
生成将新的RPM转换为YUM存储库所需的元数据,并清理不再需要的内容:
# createrepo --database /var/tmp/httpd
# rm -rf /var/tmp/httpd-installroot
将下载目录配置为存储库。注意,对于CentOS7,gpgkey将被命名为“ 7”而不是“ 6”:
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
要检查缺少的依赖项:
# repoclosure --repoid=offline-httpd
我还没有弄清楚为什么在CentOS7上,它会报告目录中显然libssl.so.10(libssl.so.10)(64bit)
缺少httpd-tools
何时openssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(该库的提供者)丢失的东西。不过,如果您发现明显缺少的内容,则可以使用yum install --downloadonly
上面的相同方法返回并添加它。
脱机时或将/var/tmp/httpd
仓库目录复制到其他服务器后,在此处设置仓库:
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
# yum --disablerepo=\* --enablerepo=offline-httpd install httpd
希望不会丢失任何依赖!