最近在安装大数据平台,遇到了一些问题,解决了关于服务器主机不联网,如何离线安装rpm软件包的解决方案,曾困扰了一小段时间,网上没有找到完整的解决方案和详细说明,于是乎,借此记录下来,一方面自己总结分析,另一方面看看能不能帮助到别人。
前提简要说明:

  • 主机10.45.151.151需要安装mysql软件包,奈何离线,无法下载安装
  • 主机10.45.151.152可以联网,于是在152主机上部署离线仓库,然后挂在共享出来,方便主机151可以使用yum install mysql指令来离线安装。
    首先,这两台主机都要关闭防火墙、关掉安全强化模式(两台主机都需要这样做)
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

主机152可以联网,所以须要配备的环境是:createrepo、httpd、yum-utils

yum install yum-utils createrepo httpd
#启动httpd服务:
/bin/systemctl start httpd.service
systemctl enable httpd.service

接下来创建仓库:
用来做离线仓库,存储rpm软件包,方便别的离线主机下载安装

#说明:这个地址任意,就在/var/www/html/后面再添加一些目录即可
mkdir -p /var/www/html/WDP/centos7/develop/mysql

将提前准备好的mysql和依赖放到mysql里面去,可以本地上传,,也可以通过downloadonly的方式。我这类是提前准备好的,直接传上去了。

centos7离线安装mysql rpm centos7离线安装rpm包_linux


createrepo:生成yum源各软件之间的依赖索引(这里是mysql软件)

createrepo /var/www/html/WDP/centos7/develop/mysql

centos7离线安装mysql rpm centos7离线安装rpm包_mysql_02


可以看出会在我们原来的仓库下产生一个repodata文件,这说明要安装的软件依赖索引已经建好。

centos7离线安装mysql rpm centos7离线安装rpm包_linux_03


接下来要挂载,方别其他主机或者通过网页可以直接访问得到。

mount -r /dev/sr0 /var/www/html/WDP/centos7/develop/mysql

如果出现如下错误,是因为没有连接,打开虚拟机VMware,找到相关的主机,设置:

centos7离线安装mysql rpm centos7离线安装rpm包_linux_04


把这里勾上,然后点击确认,再执行一遍挂载。就不会报错了。

centos7离线安装mysql rpm centos7离线安装rpm包_mysql_05


到这里就可以去网页上打开看看,输入主机加地址,(主机号加"/var/www/html"之后的目录就行)我的是:

10.45.151.152/WDP/centos7/develop/mysql

centos7离线安装mysql rpm centos7离线安装rpm包_离线_06


接下来去不能联网的主机151上开始配置,建立元索引。

进入yum.repo.d目录

cd /etc/yum.repos.d/

可以在这里看到一些已经建立的repo文件,把之前的repo文件全部加了.bk后缀,使其失效,然后尝试安装mysql,发现安装失败,因为没有repo索引

centos7离线安装mysql rpm centos7离线安装rpm包_mysql_07


接下来开始配置repo索引文件:

  • 中括号里面是serverid,是用于区别各个不同的repository,必须有一个独一无二的名称,所以为了避免和别的重复,就写大写的repo文件名吧,
  • name,是对repository的描述,内容可以写别的,但是最好和你的repo文件名一样,name后面跟小写repo文件名吧,
  • baseurl后面跟你的资源地址,就是用网页可以打开的那个地址,是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。
  • gpgcheck是安装时是否校验,设置0可以省去麻烦,
  • enabled=[1 or 0]当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。
  • priority 优先级
[LOCALISO]
name=localiso
baseurl=http://10.45.151.152/WDP/centos7/develop/mysql
gpgcheck=0
enabled=1
priority=1

centos7离线安装mysql rpm centos7离线安装rpm包_centos_08


设置好之后保存退出,使用命令:

#清空
yum clean all
#查看可用源
yum repolist

centos7离线安装mysql rpm centos7离线安装rpm包_mysql_09


可以看到已经能够识别到repo依赖了

这时尝试安装软件包:成功

yum install mysql

centos7离线安装mysql rpm centos7离线安装rpm包_linux_10


centos7离线安装mysql rpm centos7离线安装rpm包_mysql_11


以上就是离线安装软件仓库的全部步骤!