yum的仓库搭建

本文详细介绍如何在无外网环境下搭建本地Yum仓库,包括准备主机、配置Yum源、下载软件包、使用Python模块提供服务、客户端配置及测试等步骤,确保服务器群便捷获取软件依赖。

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

准备A,B两台主机
1,在主机A 服务端上修改yum配置文件

#yum下载软件不清空
[root@ c7-41 ~] sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
[root@ c7-41 ~] mkdir -p /yum/centos7 #创建目录用来做 YUM 仓库的使用

2,安装createrepo 软件,用于生成 yum 仓库数据库的软件

[root@ c7-41 ~] yum -y install createrepo yum-utils

3,初始化repodata索引文件

[root@ c7-41 ~] cd /yum/centos7/
[root@ c7-41 centos7] yumdownloader tree # 只下载软件不安装
[root@ c7-41 centos7] createrepo -pdo /yum/centos7/ /yum/centos7/ #更新repodata索引文件

4,提供yum服务

[root@ c7-41 ~] cd /yum/centos7/
#可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境
[root@ c7-41 centos7] python -m SimpleHTTPServer 81 &>/dev/null &
#可以通过浏览器输入本机IP查看: 如http://10.0.0.41:81/
#可以查看一下python进程
[root@ c7-41 centos7] ps -ef |grep python
root       1425      1  0 13:37 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      18405   2880  0 14:07 pts/0    00:00:00 python -m SimpleHTTPServer 81
root      18407   2880  0 14:07 pts/0    00:00:00 grep --color=auto python

在浏览器上测试
在这里插入图片描述
5,添加新的rpm包

[root@ c7-41 centos7] yumdownloader pcre-devel openssl-devel # 只下载软件不安装
[root@ c7-41 centos7] createrepo --update /yum/centos7/ # 每加入一个rpm包就要更新一下

在这里插入图片描述6,在主机B 客户端上配置yum

[root@ c7-42 ~] mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.ori
[root@ c7-42 ~] cat >/etc/yum.repos.d/centos7.repo<<EOF[centos7]name=Serverbaseurl=http://10.0.0.41:81enable=1gpgcheck=0EOF

7,临时使用指定的自己指定的centos7 库

[root@ c7-42 ~] yum --enablerepo=centos7 --disablerepo=base,extras,updates,epel list
[root@ c7-42 ~] sed -i -e '19a enabled=0' -e '29a enabled=0' -e '39a enabled=0' /etc/yum.repos.d/CentOS-Base.repo #添加永久使用
#注释/etc/resolv.conf
[root@ c7-42 ~] vim /etc/resolv.conf
[root@ c7-42 ~] cat /etc/resolv.conf
#nameserver 223.5.5.5
#nameserver 223.6.6.6

[root@ c7-42 ~] ping qq.com
ping: qq.com: Name or service not known

8,服务端安装nginx或者找nginx相关rpm,找到nginx所有的相关rpm

[root@ c7-41 ~] yum -y install nginx
#找到nginx所有的相关rpm
[root@ c7-41 ~] cd /var/cache/yum/x86_64/7/
[root@ c7-41 7] find . -name '*.rpm'
./base/packages/deltarpm-3.6-3.el7.x86_64.rpm
./base/packages/createrepo-0.9.9-28.el7.noarch.rpm
./base/packages/python-chardet-2.2.1-3.el7.noarch.rpm
./base/packages/python-deltarpm-3.6-3.el7.x86_64.rpm
./base/packages/python-kitchen-1.1.1-5.el7.noarch.rpm
./base/packages/yum-utils-1.1.31-52.el7.noarch.rpm
./base/packages/centos-indexhtml-7-9.el7.centos.noarch.rpm
./base/packages/dejavu-fonts-common-2.33-6.el7.noarch.rpm
./base/packages/dejavu-sans-fonts-2.33-6.el7.noarch.rpm
./base/packages/fontconfig-2.13.0-4.3.el7.x86_64.rpm
./base/packages/fontpackages-filesystem-1.44-8.el7.noarch.rpm
./base/packages/gd-2.0.35-26.el7.x86_64.rpm
./base/packages/gperftools-libs-2.6.1-1.el7.x86_64.rpm
./base/packages/libX11-1.6.7-2.el7.x86_64.rpm
./base/packages/libX11-common-1.6.7-2.el7.noarch.rpm
./base/packages/libXau-1.0.8-2.1.el7.x86_64.rpm
./base/packages/libXpm-3.5.12-1.el7.x86_64.rpm
./base/packages/libxcb-1.13-1.el7.x86_64.rpm
./epel/packages/nginx-all-modules-1.16.1-1.el7.noarch.rpm
./epel/packages/nginx-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-filesystem-1.16.1-1.el7.noarch.rpm
./epel/packages/nginx-mod-http-image-filter-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-http-perl-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-http-xslt-filter-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-mail-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-stream-1.16.1-1.el7.x86_64.rpm

9,将找到的nginx相关rpm包添加到自己创建的yum仓库

[root@ c7-41 7] find . -name '*.rpm'|xargs -i cp {} /yum/centos7
[root@ c7-41 7] cd /yum/centos7/
[root@ c7-41 centos7] createrepo --update /yum/centos7/ #更新自己的yum仓库

10,在主机B 客户端上重新加载yum缓存并下载nginx

[root@ c7-42 ~] yum clean all #清除缓存
[root@ c7-42 ~] yum makecache #重新加载
[root@ c7-42 ~] yum -y install nginx #安装nginx
[root@ c7-42 nginx] pwd
/usr/share/nginx #yum安装nginx默认路径
应用场景

在项目实施过程中,很多实施单位存在没有外网的情况。此时,在服务器上直接使用Yum命令根本无法使用,为了方便在本地搭建环境,为了方便快捷安装软件依赖包,我们采用临时解决方案进行本地Yum仓库搭建,不但可以供搭建机器使用,更可以供整个服务器群使用。

<think>嗯,用户想知道如何在CentOS7上搭建本地yum仓库。我之前看过几个引用,里面有提到相关步骤。首先,用户可能需要挂载ISO镜像,因为内网环境下无法连接外网,所以需要本地资源。引用[1]和[3]都提到了挂载镜像的方法,比如使用mount命令。接下来,可能需要创建一个仓库目录,比如在根目录下创建henry_repo这样的文件夹,像引用[4]说的那样。然后,把Packages里的所有rpm包复制到这个目录里,确保软件包可用。 然后,生成repodata元数据是关键步骤,使用createrepo命令,这个在引用[4]里提到过。不过用户可能需要先安装createrepo工具,可能需要通过yum安装,这时候如果没网络的话,可能需要先挂载镜像来安装这个包。然后配置yum源文件,在/etc/yum.repos.d/目录下创建一个新的.repo文件,指向本地路径,baseurl可以是file:///路径,像引用[3]和[4]里说的那样。记得禁用其他仓库,避免冲突。 测试部分,用户可能需要用yum clean all和yum makecache来更新缓存,然后试着安装软件验证。如果出现问题,可能需要检查挂载点是否持续有效,或者配置文件是否有错误。另外,引用[2]提到了yum卸载的问题,不过这可能不是用户当前关心的,但可以留作后续优化。 还有用户可能遇到的常见问题,比如无法生成元数据,这时候可能需要检查createrepo是否安装正确。或者挂载的镜像是否包含完整的Packages目录。另外,自动挂载可以通过fstab配置,这样重启后不需要手动挂载,引用[4]里提到过。用户如果是运维人员,可能有多台机器需要配置,所以引用[3]提到搭建一个集中的仓库更方便,这样其他机器可以通过HTTP或FTP访问,但用户现在问的是本地仓库,所以可能只需要单机配置。 总结步骤应该是挂载镜像、创建目录并复制文件、生成元数据、配置repo文件、测试。需要确保每一步的命令正确,路径正确。同时,注意权限问题,可能需要用root用户操作。可能还需要处理依赖关系,本地仓库是否包含所有需要的软件包,否则安装时可能仍会缺少依赖。引用里提到的方法是否全面,是否需要补充其他细节,比如备份原有repo文件,或者如何处理多个仓库的优先级。</think>### CentOS7本地Yum仓库搭建流程 #### 一、准备工作 1. **获取系统镜像** 下载或复制CentOS7的ISO镜像文件(如`CentOS-7-x86_64-DVD-2009.iso`),建议使用与系统版本匹配的镜像[^1]。 2. **挂载镜像文件** ```bash mkdir /mnt/centos7-iso # 创建挂载目录 mount -o loop /path/to/CentOS-7-x86_64-DVD-2009.iso /mnt/centos7-iso # 挂载镜像 ``` 若需永久挂载,可编辑`/etc/fstab`添加: ```bash /path/to/镜像.iso /mnt/centos7-iso iso9660 defaults,loop 0 0 ```[^4] --- #### 二、创建本地仓库目录 1. **拷贝软件包** ```bash mkdir -p /var/local_repo # 创建仓库目录 cp -r /mnt/centos7-iso/Packages/* /var/local_repo/ # 复制所有RPM包 ``` 2. **安装必要工具** ```bash yum install -y createrepo # 生成仓库元数据的工具 ``` --- #### 三、生成仓库元数据 ```bash createrepo /var/local_repo/ # 生成repodata目录 ``` 成功后会显示`Primary XML created`,表示元数据已生成[^3]。 --- #### 四、配置Yum源文件 1. **新建仓库配置文件** ```bash vi /etc/yum.repos.d/local.repo ``` 添加以下内容: ```ini [local-repo] name=Local Yum Repository baseurl=file:///var/local_repo enabled=1 gpgcheck=0 ``` 2. **清理缓存并验证** ```bash yum clean all # 清除旧缓存 yum makecache # 生成新缓存 yum list available # 查看仓库可用软件列表 ``` --- #### 五、测试安装软件 ```bash yum install -y httpd # 尝试安装Apache测试 ``` --- #### 常见问题解决 - **无法生成repodata** 检查`createrepo`是否安装成功,或手动执行`createrepo --update /var/local_repo`更新元数据[^3]。 - **仓库不生效** 确认`/etc/yum.repos.d/`目录下无其他仓库配置文件冲突,可使用`yum repolist all`查看仓库状态[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值