我已经在我的虚拟机上使用 yum 安装了相当多的软件。
我想知道是否有办法获取离线安装的rpm和依赖项rpm。
这是因为出于安全原因,我要执行安装的服务器无法访问互联网。
无论如何我也可以指定要下载的rpm 吗?
答案1
这来自我前段时间写的一篇博文。
您可以让 yum 获取 VM 上的所有包及其依赖项,然后从中创建一个存储库,然后您的服务器将使用该存储库。
请注意,VM 应该只具有运行所需的最少软件包;由于您不知道服务器上安装了什么,因此您希望 yum 下载尽可能多的依赖项。
在虚拟机上:
# mkdir /root/tmppkg
# yum --downloadonly --downloaddir=/root/tmppkg install <packages>
# chown -R root:root /root/tmppkg
# createrepo /root/tmppkg
# chmod -R 755 /root/tmppkg
传输tmppkg
服务器上的目录,假设在/opt
.然后/etc/yum.repos.d/local.repo
在服务器上创建一个文件,如下所示:
[local]
name=Local repository
baseurl=file:///opt/tmppkg
enabled=1
gpgcheck=0
protect=1
现在在服务器上运行:
# yum install <packages>
并且将从本地存储库安装软件包。 yum 完成后,您可以删除/etc/yum.repos.d/local.repo
和/opt/tmppkg
以节省空间。
答案2
是的,yumdownloader(yum-utils 包的一部分)可以下载所需的包。要下载软件包及其依赖项以进行离线安装,您可以使用此命令
yumdownloader --resolve <package name>
安装它们的顺序由 yum 决定:
yum install ./*rpm
您可以在包含所有依赖项的下载包所在的文件夹中运行此命令。
答案3
您可以使用youdownloader
这样的工具:
yumdownloader <package name>
它将安装 rpm 格式的软件包。以及下载依赖项
yumdownloader --resolve <package name>