公司机器一般情况下都是内网,那么这时候如何安装软件呢,如果只是几个 rpm 包,手动下载还是能接受的,但是如果是大量依赖呢?这时候 repotrack 就很好的解决了我们的问题。
一、准备环境
创建了一个虚拟机和内网机器版本差不多。可以使用这个命令查看: cat /etc/redhat-release
# 外网
[root@localhost rpms]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
# 内网
[ambari@bigdata1 ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
接下来以安装 redhad-lsb 为例(以下命令均在root用户、或具有sudo权限的用户下执行)
二、下载相关 rpm 包
在外网机器中,使用 repotrack 下载包(-p 指定保存路径)
repotrack -p ./redhat-lsb-4.1-27.el7.centos.1.x86_64 redhat-lsb
三、建立 yum 本地仓库、并上传到内网环境
# -v 显示过程
createrepo -v redhat-lsb-4.1-27.el7.centos.1.x86_64/
执行完目录中就多了一个目录:
drwxr-xr-x. 2 root root 4096 Oct 29 19:39 repodata
然后打包
tar zcvf redhat-lsb-4.1-27.el7.centos.1.x86_64.tar.gz redhat-lsb-4.1-27.el7.centos.1.x86_64
将打好的包上传到内网环境中。
四、搭建本地 yum 源
4.1 单机版本
和局域网差不多,只是修改了一下本地源地址(4.2.4章节)
# 改成本地路径,不过只能用于单个机器
baseurl=file:///root/redhat-lsb-4.1-27.el7.centos.1.x86_64
4.2 局域网版本
4.2.1 安装 httpd 服务
-
关闭防火墙
# 关闭防火墙 sudo systemctl stop firewalld.service # 查看状态 systemctl status firewalld.service # 关闭开机自启 sudo systemctl disable firewalld.service -
关闭 SELINUX
# 临时关闭SELINUX(master node) sudo setenforce 0# 永久关闭则需要修改配置文件,【并重启机器】 sudo vi /etc/selinux/config # SELINUX=enforcing修改为 SELINUX=disabled -
安装
httpd服务按顺序安装以下 rpm 包:
sudo rpm -ivh apr-1.4.8-7.el7.x86_64.rpm sudo rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm sudo rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm sudo rpm -ivh httpd-tools-2.4.6-95.el7.centos.x86_64.rpm sudo rpm -ivh httpd-2.4.6-95.el7.centos.x86_64.rpm下载地址:(可以用迅雷下载会快一些,也可以用国内阿里镜像)
http://mirror.centos.org/centos/7/os/x86_64/Packages/apr-1.4.8-7.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/apr-util-1.5.2-6.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/mailcap-2.1.41-2.el7.noarch.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/httpd-tools-2.4.6-95.el7.centos.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/httpd-2.4.6-95.el7.centos.x86_64.rpm -
启动服务、查看状态、设置开机自启
sudo systemctl start httpd systemctl status httpd sudo systemctl enable httpd
4.2.2 上传解压安装包
sudo mkdir -p /var/www/html/rpms
sudo tar -zxvf redhat-lsb-4.1-27.el7.centos.1.x86_64.tar.gz -C /var/www/html/rpms/
4.2.3 访问 WEB
访问地址,就能看到我们上传的内容了:http://内网主机地址/rpms
4.2.4 设置本地源地址
# 创建备份目录
sudo mkdir /etc/yum.repos.d_tmp
# 进入目录
cd /etc/yum.repos.d/
# 将原有的配置移动到备份目录,因为不能联网不可用
sudo mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d_tmp/
编辑 repo 文件:
sudo vi /etc/yum.repos.d/rpms.repo
# 添加以下内容
[redhat-lsb-4.1-27.el7.centos.1.x86_64]
name=redhat-lsb-4.1-27.el7.centos.1.x86_64
baseurl=http://主机地址/rpms/redhat-lsb-4.1-27.el7.centos.1.x86_64/
enabled=1
gpgcheck=0
清理缓存
sudo yum clean all && yum makecache
验证
yum repolist
4.2.5 安装
sudo yum install redhat-lsb -y
安装完成,结束。