【内网离线环境】搭建本地YUM源

1 介绍

内网环境由于离线,在安装数据库等软件的时候比较麻烦,很多依赖包不能联网下载。因此有必要搭建一个本地yum源,供离线环境使用。

搭建离线yum源有两种方式,第一种是使用iso镜像搭建,第二种是将所有的网络yum源rpm包下载到本地搭建离线yum源。

2 iso镜像搭建

[root@localhost ~]#mkdir /root/test
[root@r11gn1 iso]# mount -o loop OracleLinux-R6-U8-Server-x86_64-dvd.iso /mnt/
[root@localhost ~]# cd /etc/yum.repos.d/
[root@r11gn1 yum.repos.d]# yum-config-manager --add file:///mnt
[root@r11gn1 yum.repos.d]# echo gpgcheck=0 >> mnt.repo

#检查
[root@r11gn1 yum.repos.d]# yum repolist
Loaded plugins: refresh-packagekit, security, ulninfo
mnt                                                                                                                                      | 3.7 kB     00:00 ...
mnt/primary_db                                                                                                                           | 3.1 MB     00:00 ...
repo id                                                              repo name                                                                            status
mnt                                                                  added from: file:///mnt                                                              3,841
repolist: 3,841

3 部署离线yum源

3.1 共享yum源搭建

使用iso镜像的方式作用比较局限,只有四千多个包,很多常用的包他是没有的。因此才有了次方法,使用这种方式搭建的yum源几乎全部覆盖了所有的软件依赖包。

原理是在有网络的环境里先将所有rpm包,下载到本地。然后在拷贝到离线环境然后在搭建本地yum源。

一、网络yum源

在可以联网的环境,搭建好网络yum源,确保可以使用。

二、下载rpm包

[root@zabbix6 ~]# cd /etc/yum.repos.d/
[root@zabbix6 yum.repos.d]# mkdir mirror

#这一步比较久,放着跑就好
[root@zabbix6 yum.repos.d]# reposync -np mirror

[root@zabbix6 yum.repos.d]# cd mirror
[root@zabbix6 yum.repos.d]# createrepo .

执行完以上命令后,将mirror目录打包上传到离线环境的/etc/yum.repos.d/路径中。

[root@shared yum.repos.d]# ll
total 2
drwxr-xr-x. 7 root root  79 Mar 31 09:39 mirror
-rw-r--r--. 1 root root 181 Mar 31 19:58 mirror.repo

下面的步骤全部在离线机器上进行操作。

三、配置yum源repo文件

[root@zabbix6 yum.repos.d]# yum-config-manager --add file:///etc/yum.repos.d/mirror
Loaded plugins: refresh-packagekit
adding repo from: file:///etc/yum.repos.d/mirror

[mirror_]
name=added from: file:///etc/yum.repos.d/mirror
baseurl=file:///etc/yum.repos.d/mirror
enabled=1

[root@zabbix6 yum.repos.d]# echo gpgcheck=0 >> mnt.repo

验证:

[root@shared yum.repos.d]# yum repolist
Loaded plugins: ulninfo
repo_local                                                                                                                               | 2.9 kB  00:00:00
repo_local/primary_db                                                                                                                    |  18 MB  00:00:00
repo id                                                                    repo name                                                                      status
repo_local                                                                 repo for local                                                                 29,313
repolist: 29,313

可以看到,有差不多3万个yum源,是iso镜像搭建的6倍之多。

3.2 nfs挂载

要设置刚刚这台机器作为离线的共享yum源,共享到所有离线的机器上。

一、安装nfs

[root@shared yum.repos.d]# yum -y install yum-utils nfs-utils nfs

[root@shared yum.repos.d]# systemctl start nfs
[root@shared yum.repos.d]# systemctl status nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since Sun 2024-03-31 20:08:59 CST; 3s ago
  Process: 2096 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 2074 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 2073 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 2074 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Mar 31 20:08:58 shared systemd[1]: Starting NFS server and services...
Mar 31 20:08:59 shared systemd[1]: Started NFS server and services.

二、添加共享目录

在 /etc/exports 文件中添加一行来共享 /etc/yum.repos.d/mirror 目录,并且允许所有主机(*)以读写(rw)权限访问。

[root@shared yum.repos.d]# vim /etc/exports
[root@shared yum.repos.d]# /etc/yum.repos.d/mirror *(rw)
[root@shared yum.repos.d]# systemctl restart nfs
[root@shared yum.repos.d]# showmount -e localhost
Export list for localhost:
/etc/yum.repos.d/mirror *

三、远程挂载

在共享yum源的机器上关闭防火墙,否则其他机器挂载不上nfs共享目录:

[root@shared yum.repos.d]# systemctl stop firewalld
[root@shared yum.repos.d]# systemctl disable firewalld

到其他需要使用yum源的机器上执行以下步骤:安装nfs,远程挂载共享yum源目录:

[root@r11gn1 yum.repos.d]# yum -y install yum-utils nfs-utils nfs
[root@r11gn1 yum.repos.d]# systemctl start nfs
[root@r11gn1 yum.repos.d]# mount -t nfs 192.168.56.66:/etc/yum.repos.d/mirror /mnt/
[root@r11gn1 yum.repos.d]# df -h
Filesystem            Size  Used Avail Use% Mounted on
192.168.56.66:/etc/yum.repos.d/mirror
                       46G   31G   16G  67% /mnt

检查共享目录情况:

[root@r11gn1 yum.repos.d]# showmount -e 192.168.56.66
Export list for 192.168.56.66:
/etc/yum.repos.d/mirror *

四、创建yum文件

[root@r11gn1 yum.repos.d]# yum-config-manager --add file:///mnt/
Loaded plugins: refresh-packagekit
adding repo from: file:///mnt/

[mnt_]
name=added from: file:///mnt/
baseurl=file:///mnt/
enabled=1

[root@r11gn1 yum.repos.d]# echo gpgcheck=0 >> mnt.repo
[root@r11gn1 yum.repos.d]# yum repolist
Loaded plugins: refresh-packagekit, security, ulninfo
mnt1_                                                                                                                | 2.9 kB     00:00 ...
repo id                                                   repo name                                                                   status
mnt                                                       added from: file:///mnt                                                      3,841
mnt1_                                                     added from: file:///mnt1/                                                   29,313
repolist: 33,154

成功!!!

无论要配置多少台机器,几台也好,几百台也罢,都是重复以上的操作。
有兴趣的话各位可以写个一键配置脚本,就不用做这么多重复性的工作了。后续我会再更新一个自动化脚本。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 系统中,yum 是一款非常重要的包管理工具,它可以帮助我们快速方便地安装、升级和删除软件包。为了提高软件包安装的效率,我们可以搭建本地的 yum ,这样就可以避免重复下载和从远程服务器上拉取软件包,大大缩短软件包安装的时间。 以下是在 CentOS 7 系统上搭建本地 yum 的步骤: 1. 安装 httpd 和 createrepo 软件包: ``` sudo yum install httpd createrepo -y ``` 2. 创建一个本地 yum 目录: ``` sudo mkdir -p /var/www/html/yum ``` 3. 将需要的软件包复制到本地 yum 目录中: ``` sudo cp /path/to/packages/* /var/www/html/yum/ ``` 4. 进入本地 yum 目录并创建 repodata 目录: ``` cd /var/www/html/yum sudo createrepo . ``` 5. 修改 Apache 配置文件,开启目录索引: ``` sudo vi /etc/httpd/conf/httpd.conf ``` 找到以下这一行: ``` Options Indexes FollowSymLinks ``` 将其改为: ``` Options Indexes FollowSymLinks +Indexes ``` 保存并退出。 6. 启动 Apache 服务: ``` sudo systemctl start httpd ``` 7. 配置本地 yum : ``` sudo vi /etc/yum.repos.d/local.repo ``` 添加以下内容: ``` [local] name=Local Yum Repository baseurl=http://localhost/yum/ gpgcheck=0 enabled=1 ``` 保存并退出。 8. 清除 yum 缓存: ``` sudo yum clean all ``` 9. 测试本地 yum 是否可用: ``` sudo yum list ``` 如果列出了本地 yum 中的软件包列表,说明本地 yum 已经搭建成功。 以上就是在 Linux 系统中搭建本地 yum 的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值