Background
上次Ubuntu离线安装Podman,今天在RHEL 7上再离线安装下。
http://rpmfind.net/linux/rpm2html/search.php?query=podman&submit=Search+...&system=centos+7&arch= 该网址找不到centos 7版本的离线安装包。只能换思路。
通过cat /etc/os-release 查到我当前离线服务器是Red Hat Enterprise Linux Server 7.3(Maipo)。
我查到对应的centos应该是centos7-1611,版本对比可参考https://blog.csdn.net/LelemamaAnne/article/details/113243337
所以我得在我在线机器通过vmware workstation先装centos7-1611虚拟机,下载打包podman 及其依赖安装包。然后去red hat上离线安装~
在线机器安装centos7.3.1611
首先下载centos dvd镜像,可参考以下网址
https://renwole.com/archives/1524 或者http://aiezu.com/baiduyun/centos_7.3_x86_64_iso_baiduyun_download.html
然后按照https://blog.csdn.net/LelemamaAnne/article/details/113367921 来按照centos。
centos7.3 在线下载,打包podman
先存储网络安装源
执行下面的命令:
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo
上面的命令把podman的网络安装源添加到yum的repository, 也就是/etc/yum.repo.d 目录下
你可执行cat /etc/yum.repo.d查看
只下载不安装上面的podman网络安装源包
首先安装插件yum-plugin-downloadonly, 执行命令yum install yum-plugin-downloadonly
命令格式:
yum install --downloadonly --downloaddir=软件包位置[可选] 软件包名(可加上版本号,指定版本)
软件包保存位置:
默认保存到/var/cache/yum/ 下的软件相应的repo的源的目录的packages目录下
通过 –downloaddir 来指定位置,软件包和依赖的软件将被下载到此目录
yum install --downloadonly --downloaddir=/root/mypackages/ podman
创建下载目录
mkdir -p /root/podmanDeps
cd /root/podmanDeps
执行下载保存不安装命令:
yum install --downloadonly --downloaddir=/root/podmanDeps/ podman
上面命令的意思时只下载podman相关的安装包,下载到/root/podmanDeps
看到下面界面说明下载成功
可以执行ls命令查看下
可执行podman --version查看下,确实是只下载没有安装。
通过tar命令压缩podmanDeps下所有文件
先退回到root目录下,然后执行命令tar vzcf podmanDeps.tar.gz podmanDeps
就可以把podmanDeps文件夹下所有文件打包成文件podmanDeps.tar.gz
tar czvf 压缩文件名称.tar.gz 文件或者目录名称 c是打包;z是gzip格式压缩;v是显示打包过程;f是显示打包名字
下面ls一下看看是否生成了
centos离线安装podman
上面的步骤已经下载好了podman的安装包,下面我要断网,看看可否离线环境下安装刚刚的安装包。我是要保证我的机器可以断网安装(小白鼠),然后copy 安装包到离线的服务器去安装。
在root目录下,把压缩包解压到/tmp下 ,执行命令tar -zxvf podmanDeps.tar.gz -C /tmp,然后去/tmp下查看
安装
下面在/tmp/podmanDeps路径下进行离线安装podman
执行安装命令:rpm -Uvh *.rpm --nodeps --force
1.--nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了--nodeps你就能装上了。
2.--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装。
然后执行podman --version查看是否安装成功
清理工作
执行rm -rf /tmp/podmanDeps, 删除临时安装包。 记住/root目录下你还有一份压缩包呢。
恭喜恭喜,你完成了离线安装podman!!
现在copy安装包到离线服务器,安装吧~