一、前言
首先解释一下什么是yum,yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
相比其他几种安装方式,不可谓不快,不可谓不方便。
yum能够自动查找并解决rpm包之间的依赖关系,要成功的使用yum工具更新系统和软件,需要有一个包含各种rpm软件包的repository(软件仓库),提供软件仓库的服务器习惯上成为“源”服务器。网络上有大量的源服务器,但是,由于受到网络连接速度、带宽的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要升级时,更新的缓慢程序令人难以忍受。
相比较而言,本地YUM源服务器最大优点在局域网的快速网络连接和稳定性。有了局域网中的yum源服务器,即便在网络连接中断的情况下,也不会影响软件升级和安装。
二、开始搭建本地yum源
下面介绍两种搭建本地yum源的方式
(一)前期准备
需要到网易开源镜像站或者阿里云镜像下载相应版本的的镜像,然后解压.iso文件,将解压目录下的Packages文件上传到linux服务器中(本人环境为linux虚拟机,并且为了方便使用,单独由一台虚拟机作为软件仓库使用)。
这个Packages目录下存放了两个镜像光盘中所有的rpm包,大约有6700多个,以上是搭建本地yum源的基础。
执行createrepo命令,创建关联关系
createrepo ./
这个过程需要几分钟,请耐心等待。。。
(二)使用nfs方式搭建
使用nfs可以挂载局域网内其他机器的文件目录,具体如何使用nfs挂载网络文件目录,请移步简单实现linux挂载网络文件目录 。
在另一台机器(node05)中挂载myshop下存放的Packages目录
在node05机器中,在/var目录下新建centos6.9目录,将这个目录挂载到myshop机器下的/var/centos6.9目录中
所以在node05中访问/var/centos6.9目录,就如同在myshop中访问一样
配置yum
切换到node05的如下目录
将CentOS-Base.repo中的内容更改为如下内容(为保险起见,可以先对这个文件做备份):
[base]
name=CentOS-$releasever - Base
baseurl=file:///var/centos6.9/Packages/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
完成以后
执行clean命令,清理本地缓存
yum clean all
执行makecache命令,创建缓存数据
yum makecache
到此,使用nfs搭建本地yum源已经完成。
查看yum仓库列表
yum repolist
到此,使用nfs方式搭建本地yum源已经完成。
(三)使用nginx环境下搭建
在nginx环境下搭建本地yum源,具体如何安装nginx,请移步Nginx安装及其优化。
配置nginx,在nginx.conf文件中添加如下代码
server {
listen 80;
server_name 192.168.6.200;
location / {
root /var/centos6.9;
autoindex on;
}
}
如此配置,就可以在浏览器中访问myshop下的目录了
配置yum
切换到node05的如下目录
将CentOS-Base.repo中的内容更改为如下内容(为保险起见,可以先对这个文件做备份):
[base]
name=CentOS-$releasever - Base
baseurl=http://192.168.6.200/Packages/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
以上192.168.6.200为myshop的ip地址
完成以后执行clean命令,清理本地缓存
yum clean all
执行makecache命令,创建缓存数据
yum makecache
查看yum仓库列表
yum repolist
到此,在nginx环境下搭建本地yum源已经完成。其中,nginx环境也可更改为tomcat等环境。
三、简单总结
以上两种搭建本地yum源的方式,有很多相似之处
1、首先要有yum源(也就是rpm包存放位置),并且做了关联
2、两种方式中,对于CentOS-Base.repo文件的配置大同小异,nfs方式是使用了本地文件系统(file://),nginx方式采用了网络协议(http://),最终的目的就是能够通过这些配置能够找到rpm包存放的地址而已。
3、nfs方式配置稍微简单点,但是服务端和客户端都需要进行相应配置。
4、使用nginx配置方式只是服务端配置稍微麻烦些,但是客户端配置相对来说非常简单。
感谢您的阅读,如果有任何疑问或者有更好的方式实现,欢迎留言。