CentOS 本地 YUM 源
背景介绍
CentOS(Community Enterprise Operating System)是一个基于 Red Hat Enterprise Linux (RHEL) 的开源操作系统,YUM(Yellowdog Updater, Modified)是一个在 Fedora 和 RHEL 及其衍生发行版中使用的包管理器,能够从指定的服务器自动下载 RPM 包并安装,同时还能自动处理依赖性关系,本文将详细讲解如何在 CentOS 系统中配置和使用本地 YUM 源。
一、YUM 相关概念
YUM 的定义与作用
定义:YUM 是一个基于 RPM 软件包管理的 shell 前端程序,用于解决软件包的安装、更新、移除和查找等任务。
作用:简化了软件管理过程,可以自动解决软件包之间的依赖关系,无需用户手动下载和安装每个依赖包。
YUM 源的类型
网络 YUM 源:默认的官方源或第三方提供的公共源,如 CentOS 官方源、阿里云源等。
本地 YUM 源:用户自己创建和维护的源,通常位于内网文件服务器或本地磁盘上。
私有 YUM 源:企业内部使用的源,通常搭建在局域网内的服务器上,便于统一管理和快速访问。
二、为什么要使用本地 YUM 源
提高安装速度:在内网环境中,通过本地 YUM 源安装软件包的速度要比从互联网下载快得多。
减少外网依赖:对于无法连接外网的环境,本地 YUM 源是必需的选择。
节省带宽:在内网中重复利用已经下载的软件包,避免每次都从外网重新下载。
可控性高:管理员可以更好地控制和管理软件包的版本和安全性。
三、如何搭建本地 YUM 源
准备工作
确保有一台 CentOS 系统的服务器,并且有足够的磁盘空间来存储软件包。
准备一个包含所需软件包的光盘镜像或 ISO 文件,CentOS7x86_64Everything1611.iso。
创建挂载点并挂载镜像
创建一个目录作为挂载点,并将 ISO 文件挂载到该目录下。
mkdir /mnt/yumiso mount o loop /path/to/CentOS7x86_64Everything1611.iso /mnt/yumiso
将镜像中的所有文件复制到本地目录中。
mkdir /yum/yumiso cp a /mnt/yumiso/ /yum/
3. 备份并删除原有的 YUM 源配置文件
为了防止出错,建议先备份原有的 YUM 源配置文件。
cd /etc/yum.repos.d/ tar zcvf repobk.tar.gz CentOS* rm f CentOSBase.repo CentOSCR.repo CentOSDebuginfo.repo CentOSfasttrack.repo CentOSMedia.repo CentOSSources.repo CentOSVault.repo
配置本地 YUM 源
创建一个新的 YUM 源配置文件,local.repo,内容如下:
[c7media] name=CentOS$releasever Media baseurl=file:///yum/yumiso/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpmgpg/RPMGPGKEYCentOS7
这个配置文件指定了 YUM 源的名称、基础 URL、GPG 签名检查以及是否启用该源。
清除 YUM 缓存并生成新的缓存
执行以下命令清除 YUM 的缓存,并强制生成新的缓存。
yum clean all yum makecache
YUM 应该已经可以使用本地源进行软件包的安装和管理了。
测试本地 YUM 源
尝试安装一个软件包以测试本地 YUM 源是否正常工作。
yum install httpd y
如果安装成功,说明本地 YUM 源配置正确。
四、自定义 YUM 源
除了使用光盘镜像作为本地 YUM 源外,还可以根据实际需求自定义 YUM 源,以下是一些常见的场景:
1. 添加特定的 RPM 包到本地 YUM 源
有时可能需要将厂商提供的特定 RPM 包添加到本地 YUM 源中,可以按照以下步骤操作:
将 RPM 包复制到本地 YUM 源的Packages
目录下。
使用createrepo
命令重新生成元数据缓存。
createrepo /path/to/your/local/yum/repo/
基于 FTP 方式发布 YUM 源
如果需要在内网中的多台机器之间共享 YUM 源,可以通过 FTP 服务来实现,以下是配置步骤:
安装 vsftpd:
yum install vsftpd y
修改 vsftpd 配置文件/etc/vsftpd/vsftpd.conf
,设置匿名访问和根目录:
anonymous_enable=YES anon_upload_enable=YES anon_root=/var/ftp/pub
启动并使 vsftpd 服务开机自启:
systemctl start vsftpd systemctl enable vsftpd
将本地 YUM 源的文件复制到/var/ftp/pub
目录下,并确保其他客户端可以通过 FTP 访问这些文件。
3. HTTP/HTTPS 方式发布 YUM 源
另一种常见的方式是通过 HTTP 或 HTTPS 发布 YUM 源,这需要搭建一个 Web 服务器(如 Nginx 或 Apache),并将本地 YUM 源的文件放置在 Web 服务器的目录中,在 YUM 源配置文件中指定相应的 baseurl。
五、归纳
通过本文的介绍,相信读者已经掌握了在 CentOS 系统中配置和使用本地 YUM 源的方法,无论是为了提高安装速度、减少外网依赖,还是为了更好地控制软件包的管理,本地 YUM 源都是一个非常实用的解决方案,希望本文能帮助读者在实际工作中更加高效地管理和使用 CentOS 系统。