redhat内网环境中配置yum服务器

前言:

生产环境中,一般不会允许所有服务器都能访问公网,理想的情况是有几台服务器作为访问代理,同时作为缓存服务器。当服务器中有所需包时通过内网获取,如无则通过公网获取同时在本地保存。(镜像搭建yum源、版本兼容性最好)
常用搭建私有yum源的方法是createrepo生成本地仓库

本地源,一般是给内网机器用的,机器数量多的时候,还是有个自建源比较方便批量更新或者不能访问公网的时候用,比如你一千台服务器同事upgrade,要是走公网,你们的网管想打死你。在每台服务器上安装软件,都要先把安装盘上传上去,在配置本地yum服务,即麻烦又费时。可以在内网的一台linux服务器上安装yum服务,然后其他服务器直接修改repo文件使用yum服务就可以了。安装步骤如下:

参考文档:
【精选】Linux中搭建本地yum源(只有内网环境离线yum仓库)_linux不能走公网更新,怎么用离线的yum库传到离线的liunx-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_43404595/article/details/117964034

1.RHEL版本

[root@oracle ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)

服务端:192.168.134.205 
客户端:192.168.134.208 

搭建服务器本地YUM:

1.上传reht安装光盘文件到home目录,命名为rhel.iso

即通过MobaXterm上传系统镜像文件到服务器指定目录(这个目录后续你能找到就行,我选择的是/home目录,如图所示)

2.创建目录/home/rhel/

mkdir /home/rhel/

3.挂载系统镜像到/mnt目录下,并查看挂载是否成功
  1. cd /home   #切换用户
  2.  mount -o loop /home/rhel-server-7.9-x86_64-dvd.iso /home/rhel
  3. df -h

重启之后,就会失效,可以设置开机自动挂载
  1. 打开终端或命令行界面,并使用 root 用户或具有 sudo 权限的用户登录到系统。

  2. 使用文本编辑器创建一个新的脚本文件,例如 mount_iso.sh

    sudo vi /etc/init.d/mount_iso.sh
    
  3. 将以下内容复制并粘贴到脚本文件中:

    #!/bin/bash
    
    # 定义镜像文件和目标挂载目录
    ISO_FILE="/home/rhel-server-7.9-x86_64-dvd.iso"
    MOUNT_DIR="/home/rhel"
    
    # 检查挂载目录是否存在,若不存在则创建
    if [ ! -d "$MOUNT_DIR" ]; then
        mkdir "$MOUNT_DIR"
    fi
    
    # 挂载镜像文件
    mount -o loop "$ISO_FILE" "$MOUNT_DIR"
    

    请确保替换 ISO_FILE 和 MOUNT_DIR 的路径为正确的镜像文件和目标挂载目录路径。

  4. :wq保存并关闭文件。

  5. 接下来,让脚本可执行:

    sudo chmod +x /etc/init.d/mount_iso.sh
    
  6. 使用以下命令将脚本添加到启动过程中:

    sudo ln -s /etc/init.d/mount_iso.sh /etc/rc.d/rc.local
    sudo chmod +x /etc/rc.d/rc.local
    

    这将在每次系统启动时执行 /etc/init.d/mount_iso.sh 脚本。

  7. 最后,重新启动系统验证脚本是否成功挂载镜像文件。

 也可以:

直接在启动过程中加上

安装FTP服务(一般安装完系统后会直接有这个服务,按照没有来写)

 1.执行安装命令

 yum install vsftpd*

2.安装完成后,复制/home/rhel/ 目录下的所有文件到/var/ftp/pub 目录中

cd /home/rhel
cp -rv * /var/ftp/pub

3、切换到 /var/ftp/pub目录

   删除*.html
   删除CentOS/repodata/TRANS.TBL
   cd /var/ftp/pub
   rm -rf *.html

   rm -rf repodata/TRANS.TBL

安装createrepo工具,生成YUM通用数据库 

1. 安装createrepo

  1. yum -y install createrepo#下载createrepo
   2.createrepo -g /var/ftp/pub/repodata/3df90817a193baef023d53222cc4ce8f4d15209e593bee361bf72016022008fb-comps-Server.x86_64.xml /var/ftp/pub

   注:这里3df90817a193baef023d53222cc4ce8f4d15209e593bee361bf72016022008fb-comps-Server.x86_64.xml名称可能每个系统不一样,找准后面是comps-rhel6-Server.xml就行了。

客户端yum配置

首先先关闭防火墙
  1. 使用管理员权限登录到 Red Hat 系统。

  2. 打开终端或命令行界面。

  3. 输入以下命令以停止防火墙服务:

    sudo systemctl stop firewalld
    
  4. 输入以下命令以禁用防火墙服务的自动启动:

    sudo systemctl disable firewalld
    

    这将确保系统在下次启动时不会自动启动防火墙服务。

  5. 最后,您可以验证防火墙服务是否已成功停止和禁用。输入以下命令:

    sudo systemctl status firewalld
    

    如果输出中显示防火墙服务为 “inactive”(非活动状态),则表示防火墙已成功关闭。

 进入/etc/yum.repos.d/目录,备份原有的repo文件,创建新的repo文件,rhel.repo
  1.  cd /etc/yum.repos.d/ 
  2. mkdir bak/
  3. cp * bak/
  4. vi rhel.repo
[redhut7]               //仓库描述(可自定义)
name=redhut   //对软件源的描述(与上面上面保持一致)
baseurl=ftp://192.168.134.208/pub/ //镜像的挂载入地址 file:// --格式
gpgcheck=0            //不检查gpgkey
enabled=1             //此yum源语句块立即生效

 baseurl=ftp://192.168.134.208/pub/  这里的baseurl是你的服务器端的地址,根据自己的情况进行设定

保存rhel.repo后执行
  1.  yum clean all
  2.   yum update
  3.   yum makecache
 遇到问题:

这个错误提示表明另一个应用程序(yum)当前正在持有 yum 锁,并且正在访问软件包管理器。您可以尝试以下方法来解决这个问题:

  1. 等待一段时间:根据错误提示,该应用程序已经运行了一段时间,可能正在执行某些任务。您可以等待一段时间,让该应用程序完成操作并释放 yum 锁。通常情况下,它会在一段时间后自动释放。

  2. 结束相关进程:如果等待时间过长没有效果,您可以尝试手动终止相关进程。可以使用以下命令找到并终止 yum 进程:

    sudo pkill yum
    

    请注意,这样做可能会导致未完成的软件包操作被中断,因此请确保您在操作之前备份重要数据,并确保中止进程不会对系统的稳定性和安全性造成负面影响。

  3. 删除 yum 锁文件:如果以上方法仍然无效,您可以尝试手动删除 yum 锁文件。运行以下命令来查找并删除 yum 锁文件:

    sudo rm /var/run/yum.pid
    

    删除锁文件后,您可以尝试重新运行 yum 命令,看看问题是否已经解决。

问题2: 

重启一下服务端的ftp就可以解决:

  • 如果您使用的是 vsftpd(Very Secure FTP Daemon)服务器,可以使用以下命令重新启动服务:

    sudo systemctl restart vsftpd

搭建完成

常用的yum命令

1.安装

yum install package 安装指定的安装包package1
yum localinstall package 本地安装软件包

2.更新和升级

yum update 全部更新
yum update package 更新指定程序包package
yum check-update 检查可更新的程序 

3.查找和显示

yum info <package> 显示安装包信息
yum list 显示所有已经安装和可以安装的程序包
yum list <package> 显示指定程序包安装情况
yum search <keyword>查找软件包

4.删除程序

yum remove | erase package1 删除程序包
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除.
yum clean headers清除header
yum clean packages清除下载的rpm包
yum clean all 清除header与rpm包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值