分类: LINUX
2020-07-15 10:45:51
问题场景:
要在离线环境使用以下yum命令安装目标组件xxxx
# yum -y install xxxx
问题描述:
没有在线的仓库,无法使用yum该如何解决?
解决思路:
下载所有所需的rpm包和它的依赖,拷贝到目标安装机器上,然后搭建一个本地yum仓库,安装完成之后删除本地仓库
解决方法:
一、新建一台测试的虚拟机,联网下载所有所需的rpm包和其依赖
注意:尽可能保证虚拟机和目标主机操作系统初始安装一致,或者要求测试虚拟机的组件是目标主机的子集,那样测试主机下载的rpm包和依赖会更全面,具有包括性。
# mkdir /home/temple
# yum -y install --downloadonly --downloaddir=/home/temple createrepo
# yum -y install --downloadonly --downloaddir=/home/temple xxxx
注意:--downloadonly 表示只下载,不安装 ;--downloaddir=/XXX 表示下载安装软件包xxx到/xxx位置。
二、拷贝下载的rpm包到离线目标机器的目录,并搭建本地yum仓库(本案例是/root/abc,实际目录可能不同 )
拷贝所有rpm文件
# scp 源地址: /home/temple/* 目的IP: /root/abc
将目标机器系统自带的仓库文件,转移备份
# mkdir /etc/yum.repos.d/backup
# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
# yum clean all
安装搭建仓库所需的的软件包,主包为createrepo,请按如下顺序安装(实际的rpm包版本可能不同)
# cd /root/abc
# rpm -qa | grep libxml2 | xargs rpm -e --nodeps
# rpm -qa | grep deltarpm| xargs rpm -e --nodeps
# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
# rpm -ivh libxml2-2.9.1-6.el7_2.3.x86_64.rpm
# rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
搭建本地yum仓库
# mkdir /var/localrepo
# cp -f /root/abc/* /var/localrepo
# touch /etc/yum.repos.d/localrepo.repo
修改localrepo.repo
# echo "[localrepo]" >> /etc/yum.repos.d/localrepo.repo
# echo "name=Local Repository" >> /etc/yum.repos.d/localrepo.repo
# echo "baseurl=file:///var/localrepo" >> /etc/yum.repos.d/localrepo.repo
# echo "gpgcheck=0" >> /etc/yum.repos.d/localrepo.repo
# echo "enabled=1" >> /etc/yum.repos.d/localrepo.repo
# createrepo -v /var/localrepo
# yum repolist
三、利用本地yum仓库,安装所需软件包
# yum -y install xxxx
四、安装完成后,删除搭建的本地yum仓库,恢复系统yum仓库文件
# rm -rf /var/localrepo
# rm -rf /etc/yum.repos.d/localrepo.repo
# mv /etc/yum.repos.d/backup/*.repo /etc/yum.repos.d/
# rm -rf /etc/yum.repos.d/backup
# yum clean all