六、如何自建yum仓库
6.1、引言:
虽然系统自带的仓库已经很常用,只要连接到互联网我们就能很容易有获取到互联网的yum仓库。但是如果是在企业内网,企业内部不允许访问互联网,又或者如果企业服务器众多,如果都要从互联网去获取yum仓库,那将很占用带宽。基于这种情况,我们就需要自己在企业内部创建yum仓库。
6.2、自建仓库需要使用的命令介绍
createrepo(create repo):创建仓库,在自建仓库时,使用命令createrepo会自动帮我们生成repodata文件作为软件的仓库,而其目录下有四个必要文件:filelists.xml.gz,other.xml.gz,primary.xml.gz和repomd.xml,其中最重要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodata目录;三是*.repo配置文件冲突(这个需要特意注意)。
小贴士:createrepo命令默认是没有安装,所以我们需要提前安装,createrepo的安装包为“createrepo-0.9.9-17.el6.noarch.rpm”,可以使用RPM或yum先将此程序包安装。
安装方法:
#yum -y install createrepo 或 rpm -ivh createrepo-0.9.9-17.el6.noarch.rpm (路径一定要写对)6.3、自建yum仓库有2种方法
1)、基于关盘镜像创建yum仓库
2)、根据服务自建提供yum仓库的服务器(ftp、http、nfs)
6.4、基于关盘镜像创建yum仓库
6.4.1、先将光盘挂载至/mnt目录下
mount /dev/cdrom /mnt6.4.2、配置yum仓库文件
[root@www yum.repos.d]# vim /etc/yum.repos.d/local-media.repo #如果local-media.repo不存在,请直接创建 [Meida-repo] name=This is Local media repo baseurl= #指向光盘镜像路径 enabled=1 #是否启动该仓库 gpgcheck=0 #是否检查包完整性 [root@www yum.repos.d]# yum clean all #清除所有的包缓存和元数据 [root@www yum.repos.d]# yum list #列出所有的仓库和程序包6.5、根据服务自建提供yum仓库的服务器(这里以http服务为例)
6.5.1、首先安装http服务
yum -y install httpd 或 rpm -ivh httpd6.5.2、关闭Linux防火墙和Selinux
#防火墙和Selinux可能会影响用户访问HTTP,所以这里需要将其禁用 [root@www yum.repos.d]# service iptables stop #关闭防火墙服务 [root@localhost ~]# chkconfig iptables off #关闭防火墙自动启动 [root@www yum.repos.d]# getenforce #查看Selinux状态 Enforcing表示启用 Permissive表示不启用 Enforcing [root@www yum.repos.d]# setenforce 0 #关闭Selinux 0表示关闭 1表示开启 [root@www yum.repos.d]# getenforce Permissive [root@localhost ~]# vim /etc/selinux/config #关闭Selinux开机启动,编辑confg文件,将其中SELINUX字段改为如下设置 SELINUX=disabled6.5.3、启动httpd服务和开机自动服务
[root@www yum.repos.d]# service httpd start #开启httpd服务 [root@www yum.repos.d]# chkconfig on #设置httpd服务开机自动启动 [root@localhost ~]# netstat -tunlp | grep http #查看http服务是否已启用 tcp 0 0 :::80 :::* LISTEN 1532/httpd6.5.4、编辑httpd的文档目录
#httpd默认的目录文档路径为/var/www/html [root@localhost html]# mkdir /var/www/html/rpm-repo #创建仓库路径 [root@localhost rpm-repo]# cp -a /mnt/Packages/xcb* /var/www/html/rpm-repo/ #拷贝RPM程序包为测试使用6.5.5、使用createrepo配置yum仓库
[root@localhost rpm-repo]# createrepo /var/www/html/rpm-repo/6.5.6、验证和查看http仓库的文件
6.5.7、配置和验证yum仓库
[root@localhost yum.repos.d]# vim /etc/yum.repos.d/local.repo #编辑yum仓库文件,让仓库路径指向http的yum仓库 [http-repo] name=http yum repo baseurl=http://192.168.80.150/rpm-repo enabled=1 gpgcheck=0 [root@localhost ~]# yum list