构建http-yum源-CentOS7

本文围绕 CentOS 的 YUM 源展开,介绍了基于 HTTP 构建 YUM 网络源的步骤,包括挂载光盘、拷贝软件包、创建本地源并借助 HTTP 发布;阐述了 YUM 源端软件包扩展的方法,如添加 ntfs - 3g 软件包;还说明了同步外网 YUM 源的方式,以完善本地软件包。

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

YUM 本地源默认只能本机使用,局域网其他服务器无法使用 YUM 光盘源,如果想使用的话,需要在每台服务器上构建 YUM 本地源,所以需要构建 HTTP 局域网 YUM 源解决,可以通过 CreateRepo 创建本地 YUM 源端,repo 即为 Repository。

目录:
1. 基于 HTTP 构建 YUM 网络源
2. YUM 源端软件包扩展
3. 同步外网 YUM 源

基于 HTTP 构建 YUM 网络源

步骤:

  1. 挂载光盘镜像文件至/mnt

    mount /dev/cdrom /mnt/
    
  2. 拷贝/mnt/Packages 目录下所有软件包至/var/www/html/centos/

    mkdir -p /var/www/html/centos/
    
    cp -R /mnt/Packages/* /var/www/html/centos/
    
  3. 使用 Createrepo 创建本地源,执行如下命令会在 Centos 目录生成 repodata 目录

    yum	install	createrepo*	-y 
    
    cd /var/www/html
    
    createrepo	centos/
    

    生成的repodata目录内容

    [root@localhost repodata]# ls
    318c9ea8899e2f554cebed8055428d09a1618da9018e596f3af7b73f04caac8e-primary.xml.gz
    889867557baca0aa02d00feaeaf63d48f27505015687fc1ecb1e9ffa34c5ff6e-primary.sqlite.bz2
    d683b9a986e59a7b0347c34b28137c89611b4013d1f569f22e79f014e83bfb74-other.sqlite.bz2  repomd.xml
    65666f9c4ae025e8363f203bc436b6f8810ca6eeb92a9674945e9401846f400b-filelists.xml.gz 
    9df0dccbf380d7af65397d20846942062c7e270dd81a6c36824dd360caad464f-filelists.sqlite.bz2 
    ef04b6dc0b5b437bed9e05a44e5f9978d62781d640ebcf09dc4098a806c774fd-other.xml.gz
    
  4. 利用 HTTP 发布 YUM 本地源

    本地 YUM 源通过 CreateRepo 搭建完毕, 需要借助 HTTP WEB 服务器发布
    /var/www/html/centos/中所有软件,YUM 或者 RPM 安装 HTTP WEB 服务器,并启动 httpd服务

    yum install httpd httpd-devel -y 安装 HTTP WEB 服务; 
    useradd apache -g apache	创建 apache 用户和组; # yum 安装自动创建
    systemctl restart httpd.service		重启 HTTPD 服务;
    setenforce 0	临时关闭 SeLinux 应用级安全策略;
    systemctl stop firewalld.service	停止防火墙;
    ps -ef |grep httpd	查看 HTTPD 进程是否启动
    
  5. 在 YUM 客户端,创建/etc/yum.repos.d/http.repo 文件,写入如下内容

    [base]
    name="CentOS7 HTTP YUM"
    baseurl=http://172.31.1.202/centos/
    gpgcheck=0
    enabled=1
     
    [updates]
    name="CentOS7 HTTP YUM"
    baseurl=http://172.31.1.202/centos
    gpgcheck=0
    enabled=1
    
  6. 在 YUM 客户端上执行如下命令

    yum clean all	清空 YUM Cache;
    
    yum install memcached	-y	安装 MEMCACHED 软件
    

    执行成功如下

    在这里插入图片描述
    回到目录

YUM 源端软件包扩展

默认使用 ISO 镜像文件中的软件包构建的 HTTP YUM 源,会发现缺少很多软件包,如果服务器需要挂载移动硬盘,Mount 挂载移动硬盘需要 ntfs-3g 软件包支持,而本地光盘镜像中没有该软件包,此时需要往 YUM 源端添加 ntfs-3g 软件包

添加方法如下:

  1. 切换至/var/www/html/centos 目录,官网下载 NTFS-3G 软件包
    cd /var/www/html/centos/
    wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm 
    https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-devel-2017.3.23-11.el7.x86_64.rpm
    
  2. Createrepo 命令更新软件包,同理,如需新增其他软件包,同样把软件下载至本地,然后通过 createrepo 更新即可
    [root@localhost centos]# createrepo --update /var/www/html/centos/
    Spawning worker 0 with 2 pkgs
    Workers Finished
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete
    
  3. 客户端 YUM 验证,安装 NTFS-3G 软件包
    [root@localhost ~]# yum install ntfs-3g* -y
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package ntfs-3g.x86_64 2:2017.3.23-11.el7 will be installed
    ---> Package ntfs-3g-devel.x86_64 2:2017.3.23-11.el7 will be installed
    
    回到目录

同步外网 YUM 源

仅仅靠光盘里面的 RPM 软件包是不能满足需要,我们可以把外网的 YUM 源中的所有软件包同步至本地,可以完善本地 YUM 源的软件包数量及完整性。
获取外网 YUM 源软件常见方法包括 Rsync、Wget、Reposync,三种同步方法的区别Rsync 方式需要外网 YUM 源支持 RSYNC 协议,Wget 可以直接获取,而 Reposync 可以同步几乎所有的 YUM 源,下面以 Reporsync 为案例,同步外网 YUM 源软件至本地

步骤如下:

  1. 下载 CentOS7 REPO 文件至/etc/yum.repos.d/,并安装 reposync 命令工具
    wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
    mv CentOS7-Base-163.repo /etc/yum.repos.d/centos.repo 
    yum	clean all
    yum install yum-utils createrepo –y
    yum repolist
    
  2. 通过 reposync 命令工具获取外网 YUM 源所有软件包,-r 指定 repolist id,默认不加-r 表示获取外网所有YUM 软件包,-p 参数表示指定下载软件的路径
    reposync -r	base -p /var/www/html/centos/
    
    reposync -r	updates -p /var/www/html/centos/
    
  3. 通过 reposync 工具下载完所有的软件包之后,需要执行 createrepo 更新本地YUM 仓库
    createrepo	/var/www/html/centos/
    
    回到目录
### CentOS Yum配置及使用方法 #### 1. 系统版本确认 在开始配置之前,需要先确认当前系统的具体版本号。这一步非常重要,因为不同的CentOS版本对应着不同版本的Yum配置文件。可以通过以下命令获取系统版本信息: ```bash cat /etc/centos-release ``` 此操作能够帮助识别具体的发行版以及其主要版本号[^1]。 #### 2. 安装必要工具 为了便于后续的操作,在某些情况下可能需要安装`wget`或其他必要的工具来下载所需的配置文件或软件包。如果没有预装这些工具,则可通过如下命令完成安装: ```bash yum -y install wget ``` 这条指令会自动处理依赖关系并安装最新可用版本的`wget`程序。 #### 3. 备份原始YUM设置 为了避免因错误修改而导致无法正常工作的情况发生,建议先把现有的repo定义做一份副本保存起来作为应急恢复之用。执行下面语句即可实现这一目标: ```bash cp -rf /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ``` 这样就创建了一个名为`.backup`扩展名的新文件夹下的原文件拷贝[^1]。 #### 4. 替换默认镜像地址 接下来就是实际替换官方提供的基础库链接部分了。这里推荐采用阿里云或者网易开项目组所提供的国内加速站点之一来进行更改: ##### 方法A (通过手动编辑方式) 利用文本编辑器打开base repository路径下的相应文档进行逐项调整: ```bash vi /etc/yum.repos.d/CentOS-Base.repo ``` 找到其中有关mirrorlist字段的内容将其注释掉(即前面加上"#") ,然后再新增一行指向新的URL资位置比如阿里巴巴集团旗下的公共镜像服务端口http://mirrors.aliyun.com/centos/$releasever/os/$basearch/等等形式表示[^2]。 ##### 方法B (自动化脚本批量更新) 当然也可以借助于现成的一键式解决方案快速达成目的,例如运行下列Shell Script代码片段就能一键切换至腾讯云CDN节点之上: ```bash curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo && yum clean all && yum makecache ``` 该过程不仅替换了原有的repository URL还同步清理缓存重新构建索引以确保立即生效[^2]。 #### 5. 测试新环境有效性 最后一步便是验证整个流程是否顺利完成无误。尝试任意选取一款常用应用名称输入到终端窗口测试能否成功解析出来可供选择的不同候选方案列表供最终选定安装。 ```bash yum list | grep vim-enhanced ``` 如果一切顺利的话应该可以看到类似于这样的输出结果展示给我们看哪些增强型Vim编辑器实例存在于此处环境中等待被部署上去吧?[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值