内网环境 CentOS7 搭建本地repo仓库源

本文记录了将epel、ius、mysql等仓库设置为Centos本地仓库的过程,包括可联网和内网Centos的操作步骤。还介绍了CentOS 7六种ISO镜像文件的区别及挂载方法,提醒挂载时编辑文件的注意事项,避免机器重启问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:Downloading RPM Packages with dependencies [ yumdownloader Vs yum-downloadonly Vs repoquery]

通过 yum install安装各种包,非常方便。

如果是的内部局域网内,无法使用各种仓库镜像,只能从互联网批量把所有的包同步下来,拷贝进内网,再建立仓库。

下面记录一下,把epel仓库、ius仓库、mysql 仓库、centos-7-x86-64-everything-1810设置为本地仓库的过程。

 

一、可以联网的Centos中操作

1.安装reposync命令。该命令来自于“yum-utils-1.1.31-45.el7.noarch”包,该包在base源中。

yum install yum-utils-1.1.31-45.el7.noarch

或者直接:
yum install yum-utils

2.安装createrepo命令。该命令来自“createrepo-0.9.9-28.el7.noarch”包,该包在base源中。内网的centos也需要安装此包

   createrepo命令用于  同步到本地的包,重新生成repodata目录。

centos7 默认已经有此命令。

yum install createrepo-0.9.9-28.el7.noarch

3.把epel源中的rpm包下载到本地,ius源也一样的操作

# 能够直接使用epel 这个名字的前提是,已经
yum install epel-release

//大概需要下载1个多小时
reposync -r epel -p /root/

//不同同时运行这个命令,上面下载完毕,才能启动下面的命令,要不会报错:
//Error: /var/run/yum.pid 已被锁定,PID 为 19347 的另一个程序正在运行。
要下载 https://centos.pkgs.org/7/ius-x86_64/ius-release-2-1.el7.ius.noarch.rpm.html
yum install ius-release-2-1.el7.ius.noarch.rpm

reposync -r ius -p /root/




# 即在/etc/yum.repos.d/ 目录下,已经有了epel.repo,而且仓库的名字是[epel]

# 假如是安装mysql 

首先
yum install mysql80-community-release-el8-1.noarch.rpm

本地/etc/yum.repos.d/下已经有了  mysql-community.repo  和  mysql-community-source.repo

通过查看上面两个文件,知道mysql的仓库名字有 [mysql80-community]

那么,同步mysql仓库的语句是:

reposync -r mysql80-community -p /root/

   将epel源中的rpm包,下载到本地的/root/epel 目录下,大概需要一个多小时.

二、内网的Centos操作

1.把下载到本地的epel拷贝到内网的某目录下,比如/root/epel目录,制作本地仓库。

createrepo -v /root/epel

      看到/root/epel目录下多了一个repodata目录,即表示完成

2.设置 /etc/yum.repos.d 目录下面的各种repo文件

比如 CentOS-Media.repo 的设置内容:

[CentOS-media]
name=CentOS-$releasever - Media
baseurl=file:///root/yum-centos7-ios/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

epel.repo的设置内容:

[Myrepos-epel]
name=CentOS-$releasever 
baseurl=file:///root/epel
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

ius.repo的设置内容:

[Myrepos-ius]
name=CentOS-$releasever 
baseurl=file:///root/ius
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
设置完毕分别运行一下命令:

yum clean all

yum makecache

yum repolist

 

挂载ISO镜像文件作为仓库的方法

CentOS 7 镜像文件各个版本区别
CentOS 7 有6种版本的 ISO 镜像文件可供选择,每一种 ISO 镜像文件都可以引导安装 CentOS、修复 CentOS,除了 CentOS-7-x86_64-NetInstall-XXXX.iso 都包含安装文件 ,LiveGNOME、LiveKDE、NetInstall均不提供额外软件以供安装完成的系统挂载使用,其他则版本都有
软件数量上 Everything > DVD > Minimal。
        多数时候选择DVD版,已安装好的系统需要额外软件,却又无法联网时,需要挂载Everything版(比DVD版软件更多)。
        需要安装精简的系统,不需要安装时添加额外软件选择Minimal,LiveGNOME、LiveKDE用于体验 CentOS,优点可以不安装,可以直接加载启用。

  6种 CentOS ISO 镜像文件

CentOS-7-x86_64-DVD-XXXX.iso(约4G)
CentOS-7-x86_64-Everything-XXXX.iso(约8G)
CentOS-7-x86_64-LiveGNOME-XXXX.iso(约1G)
CentOS-7-x86_64-LiveKDE-XXXX.iso(约2G)
CentOS-7-x86_64-Minimal-XXXX.iso(约800M)
CentOS-7-x86_64-NetInstall-XXXX.iso(约400M)

        挂接操作系统ISO镜像操作方法:----不建议把ISO放到tem文件夹,因为系统会定期清理这个文件夹里面的文件。

把iso镜像文件挂载到 /mnt/cdrom目录下

mkdir /mnt/cdrom
mount -o loop /media/...iso /mnt/cdrom

编辑/etc/fstab文件,在最后一行添加:

/tem/****.iso   /mnt/cdrom       iso9660  loop  0  0

iso9660!!!!!!!如果这里写错,机器会重启不了。这里犯了两次错误!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<think>嗯,用户需要在内网环境搭建Yum服务器。用户明确引用了站内四个关于搭建内网Yum的资料片段,从这些引用中能看到用户的关键需求点:无外网访问权限、需要批量管理多台服务器、涉及CentOS7环境。注意到引用[1]提到要用createrepo工具制作仓库,引用[2]强调下载完整系统镜像的重要性,引用[3]给出具体的httpd服务配置示例,引用[4]则说明ISO挂载到web目录的操作。这些引用很完整,说明用户已经做过一定调研。用户的核心诉求其实分两层:基础层是完成Yum服务器搭建,但更深处可能是想实现高效的离线软件管理。考虑到企业环境,可能需要补充两个隐性需求:版本兼容性(用户系统是CentOS7.8)和后续维护方案。准备在回复时重点突出四个技术环节:httpd服务器搭建、ISO资处理、createrepo建库、客户端配置。特别要注意的是引用[4]中提到的mkdir路径带{6,7}版本号的细节,说明用户环境可能存在多版本系统,这个信息很重要。安全相关设置也不能少。用户引用中多次提到关闭防火墙和SELinux,虽然这是实验环境常见做法,但在生产环境应该补充firewall-cmd放行http服务的替代方案。</think> 根据引用内容,以下是内网搭建Yum服务器的详细步骤: ### 一、基础环境准备 1. **服务器配置** - 操作系统:CentOS 7.8(引用[1]) - 主机环境确认: ```bash cat /etc/redhat-release # 查看系统版本 uname -a # 核对内核版本 ``` 2. **关闭防火墙与SELinux**(引用[1][4]) ```bash systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config reboot # 重启生效 ``` --- ### 二、搭建HTTP服务 1. **安装Apache** ```bash yum install httpd -y systemctl start httpd systemctl enable httpd ``` 2. **创建仓库目录**(引用[4]) ```bash mkdir -p /var/www/html/centos7/os/x86_64 ``` --- ### 三、部署Yum仓库 1. **挂载系统镜像**(引用[4]) ```bash # 上传ISO到服务器后执行 mount -t iso9660 /path/to/CentOS-7-x86_64-DVD-2003.iso /var/www/html/centos7/os/x86_64 ``` > **注意**:需将ISO文件中的`Packages`和`repodata`目录完整复制到挂载点 2. **创建仓库元数据**(引用[1][4]) ```bash yum install createrepo -y createrepo /var/www/html/centos7/os/x86_64 ``` 3. **添加索引页面**(引用[3]) 在`/var/www/html/index.html`添加访问指引: ```html <a href="http://[服务器IP]/centos7/os/x86_64">CentOS 7 仓库</a> ``` --- ### 四、客户端配置 1. **备份原有** ```bash mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak ``` 2. **创建内网配置文件** ```bash cat > /etc/yum.repos.d/local.repo <<EOF [local-base] name=CentOS Local Repository baseurl=http://[YUM服务器IP]/centos7/os/x86_64 gpgcheck=0 enabled=1 EOF ``` 3. **验证使用** ```bash yum clean all yum repolist yum install [软件包] # 测试安装 ``` --- ### 关键要点说明 1. **镜像完整性**:必须包含完整`Packages`和`repodata`目录(引用[2][4]) 2. **权限控制**:确保Apache用户有仓库目录读取权限 ```bash chown -R apache:apache /var/www/html/centos7 ``` 3. **版本匹配**:客户端需与仓库系统版本一致(如CentOS 7客户端访问CentOS 7仓库--- ### 常见问题解决 - **包依赖缺失**:需用`yumdownloader`下载离线包补充到仓库 ```bash yum install yum-utils -y repotrack [包名] -p /var/www/html/centos7/os/x86_64 createrepo --update /var/www/html/centos7/os/x86_64 ``` - **HTTP访问失败**:检查`iptables -nL`是否开放80端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值