如何离线安装软件包?

如何离线安装软件包?

我们的服务器离线运行,我们需要安装许多 yum 包,例如 oracle-jdk、elasticsearch、nginx 等。

有什么方法可以下载 rpm 依赖项,以便我们可以在服务器上离线安装它们?

答案1

在互联网连接的机器上维护本地 CentOS 镜像,并rsync添加一个接受 rsync 连接的公共 CentOS 镜像。然后,您可以将这些目录复制到 USB 记忆棒上,并将其用作安装源。它们已经包含作为存储库所需的元数据,因此您只需将安装程序指向它们即可。

$ du -sh /srv/www/mirrors/centos/7.1.1503/{os,updates}/x86_64 
7.1G    /srv/www/mirrors/centos/7.1.1503/os/x86_64
2.1G    /srv/www/mirrors/centos/7.1.1503/updates/x86_64

对于第三方软件包,您也可以使用reposync命令行工具自行镜像这些软件包,该工具会将 yum 存储库的内容下载到本地文件系统,并createrepo使用目录中的一组 RPM 创建 yum 存储库。

请记住,存储库不一定非要在网络上。它们可以位于本地文件系统上,例如硬盘、DVD-ROM 或 USB 记忆棒。

答案2

你必须寻找一个本地存储库,看看这个文章或者这个

答案3

回复您的评论:

我想要在另一台具有互联网连接的 Centos 7.1 机器上下载所有 RPM 包和依赖项,然后将所有这些 RPM 文件(例如,使用 pendrive)移动到服务器并在那里安装它们。

这听起来像是一件相当琐碎的事情设置选项 keepcache=0keepcache=1yum.conf在在线 CentOS 服务器上。首先在那里安装您想要在离线服务器上安装的所有软件包,然后简单地从各个/var/cache/yum/*/*/*packages/目录复制收集的 RPM 软件包。

答案4

yum install -y xxx yyy --downloadonly

那么所有的 rpm 都会被下载到/var/cache/yum

相关内容