酷徒LOGO

在完全隔离的机器上,如何安装 rpm?


问题:

所以我有一台机器,我安装了CentOS最小,没有什么。 它完全隔离。这意味着:

  • 它永远不能连接到另一台服务器或者笔记本电脑
  • 我唯一能连接到它的是u盘。

我的目标是:

  • 在上面运行 yum install docker 以便它可以运行容器。

所以我浏览了一下如何下载一批rpm及它的依赖关系,然后在脱机系统上安装它们。

所以我在 macOS 笔记本上做了这个


$ docker run -v $PWD/pkg:/pkg centos:7


# mkdir/tmp/empty


# yum install -y 


 --installroot/tmp/empty 


 --releasever 7 


 --downloadonly 


 --downloaddir/pkg 


 docker



现在我在文件夹里有很多RPM文件。 我把那个文件夹放在u盘上,把它粘在我的独立。 然后我运行:


$ yum install/tmp/pkg/*


...


Error: Package: rpm-python-4.11.3-32.el7.x86_64 (installed)


 Requires: rpm = 4.11.3-32.el7


 Removing: rpm-4.11.3-32.el7.x86_64 (installed)


 rpm = 4.11.3-32.el7


 Updated By: rpm-4.11.3-35.el7.x86_64 (/rpm-4.11.3-35.el7.x86_64)


 rpm = 4.11.3-35.el7



我还尝试通过在Mac中运行 createrepo,通过 Docker (。因为我在隔离机器上没有 createrepo,因此无法在它的上安装任何东西) 将该文件夹放入存储库中。 但它给了我同样的错误。

我的选择是什么? 我认为因为依赖性,我必须实际地镜像整个rtc存储库。 如果我想要一个包装的包,那么我也不得不镜像那个。 要在独立机器上安装 Docker,需要大量的千兆字节的传输和存储。

有什么可行的解决方法?

额外问题:如果我在独立机器上运行RHEL而不是 CentOS?


回答 1:

你最好的办法是在那个u盘上维护一个更完整的镜像。 你可以使用 reposync 获取镜像到你存储的远程存储库。 定期运行它以保持它的当前状态。 然后,使用 createrepo 创建/更新 repo 元数据。 最后,在独立主机上,为该USB磁盘的挂载点配置 yum repo。


[usb]


name=Airgaps Are Fun


baseurl=file:///mnt/usbdisk


enabled=1


gpgcheck=1


gpgkey=file:///mnt/usbdisk/gpgkey



任何事情都会在depsolving出现时成为噩梦。


回答 2:

我觉得你可以 rpm -q -R -p <package.rpm> ( 可能会有一个yum等价) 来查看包所需的依赖项。 你可以通过管道将输出传递到下载这些依赖关系。 显然,在启用了网络的机器上,你需要这样做,但是你可以将结果文件移动到已经断开的机器并反复安装它们。 我想可以能是有所需要的项目,如果你多次运行安装,你最终会得到所有的东西。

你提到 Docker 和 CentOS,所以不确定你是否已经看到了这个问题: 在隔离的( 无互联网) 7盒上安装 Docker






Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷