yum函数介绍以及自建yum仓库

一、前言

    在之前介绍了yum的配置(详细请移步 http://www.178linux.com/archives/6445)。但是有没有发现一个问题,虽然我们已将仓库指向一个可用的仓库服务器,但是随着Linux的不断升级和改版,我们是否还需要不断的去修改仓库的配置文件,如果只有一台还好,那如果我们有多台Linux系统,那么修改工作量将会很大,那么我们要怎么保证自己的仓库永远指向的是最新的仓库呢? 这就是yum函数的魅力。


二、yum函数介绍

    在RPM介绍(详细请移步 http://www.178linux.com/archives/6383 )中我们介绍2个国内比较有名的RPM包下载路径(mirrors.163.com 和mirrors.sohu.com),其中会有一个特殊文件夹路径,这为理解yum函数很重要,下面用 mirrors.163.com ,以CentOS6系统为例介绍

   仓库 6.png4.png

让我们查看yum仓库中的“CentOS-Base.repo”中的文件

5.png

其中画了红色框框的就是yum的函数

    $releaserver:代表系统的版本,对Yum而言指的是redhat-releaser版本,指向发行版的主版本号;只替换为主版本号,如RedHat 6.5 ,则替换为6

    $basearch:系统基本架构,如果是i686,i586等基本架构就为i386

    $arch:系统架构

#比如我现在的系统是CentOS6.5,系统架构是x86_64,则
#baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ 会自动替换为 baseurl=http://mirrors.163.com/centos/6/os/x86_64/


三、如何自建yum仓库

    3.1、引言:

        虽然系统自带的仓库已经很常用,只要连接到互联网我们就能很容易有获取到互联网的yum仓库。但是如果是在企业内网,企业内部不允许访问互联网,又或者如果企业服务器众多,如果都要从互联网去获取yum仓库,那将很占用带宽。基于这种情况,我们就需要自己在企业内部创建yum仓库。

    3.2、自建仓库需要使用的命令介绍

        createrepo(create repo):创建仓库,在自建仓库时,使用命令createrepo会自动帮我们生成repodata文件作为软件的仓库,而其目录下有四个必要文件:filelists.xml.gz,other.xml.gz,primary.xml.gz和repomd.xml,其中最重要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodate目录;三是*.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 (路径一定要写对)

    3.3、自建yum仓库有2种方法

        1)、基于关盘镜像创建yum仓库

        2)、根据服务自建提供yum仓库的服务器(ftp、http、nfs)

    3.4、基于关盘镜像创建yum仓库

        3.4.1、先将光盘挂载至/mnt目录下

            mount /dev/cdrom /mnt

        3.4.2、配置yum仓库文件(详细方法请移步查阅 http://www.178linux.com/archives/6445)

[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        #列出所有的仓库和程序包

仓库1.png

仓库2.png

    3.5、根据服务自建提供yum仓库的服务器(这里以http服务为例)

        3.5.1、首先安装http服务

                yum -y install httpd 或 rpm -ivh httpd

        3.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=disabled

        3.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/httpd

        3.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程序包为测试使用

        3.5.5、使用createrepo配置yum仓库

[root@localhost rpm-repo]# createrepo /var/www/html/rpm-repo/

create.png

1.png

blob.png

        3.5.6、验证和查看http仓库的文件

2.png

        3.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

3.png

实验完成!

小贴士:之前有介绍过yum的函数,有兴趣的话可以在这个实验中也尝试使用yum函数调用仓库,熟悉使用yum仓库对日后工作有很大帮助。

 

原创文章,作者:螃蟹,如若转载,请注明出处:http://www.178linux.com/6510

(0)
螃蟹螃蟹
上一篇 2015-07-24 21:56
下一篇 2015-07-24 21:58

相关推荐

  • Linux虚拟网络接口-Bonding 配置

    一、bonding 的定义     bonding是通过将同一设备的多个物理网卡绑定到一个虚拟网卡上,再对外提供连接。对于外端来说,多个物理网卡共享虚拟网卡的IP和mac地址,也就表现为一个网卡设备。通过bonding技术可以实现高可用或者负载均衡。     bonding有7种工作模式:&nbsp…

    Linux干货 2017-07-02
  • 萝卜运维记-第二周

    part2–针对文件命令的介绍,使用,演示 Ⅰ Linux文件管理类命令常用方法 Ⅱ bash的工作特性,相关示例 Ⅲ 文件的元数据有哪些,以及所代表的含义。 Ⅳ 相关命令的操作,和结果演示。 ①Linux文件管理命令常用方法 Linux常见文件类型 -:常规文件;即f; d: directory…

    Linux干货 2016-12-12
  • Linux中高级文件系统管理

    一、磁盘配额管理             定义:限制普通用户对某个目录写空间大小的限制     1、此策略是针对文件系统,并非硬盘     2、可以根据不同组和不同用户进行不同的策…

    Linux干货 2016-08-29
  • xen虚拟化基础篇

    Xen介绍:  xen是一个开放的源代码虚拟机监视器,有剑桥大学研发。它打算在单个计算机上运行多达128个满足特征的操作系统,操作系统必须进行显示地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得无需特殊硬件支持,就能达到高性能的虚拟化。 Xen由三部分组成:     第一部分…

    Linux干货 2015-08-26
  • 马哥教育网络班22期+第11周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 Bob先利用单向加密算法提取当前数据的指纹(特征码),再用自己的私钥加密数据指纹并附加于数据尾部, 然后利用对称加密将整个文件加密,之后用Alice的公钥加密对称加密密钥附加于尾部。 Alice收到数据后,先用自己的私钥解密,得到对称加密密钥,之后用对称加密密钥解密,然后用Bob的公钥 解密得到数据指纹,并且验…

    Linux干货 2016-11-14
  • 文件权限

     本篇博客是对文件权限的简单介绍,将会简述下权限的数字表现形式,还有字母表现形式,还有一些特殊的suid、sgid、sticky的权限介绍,还有对ACL权限的简述。  一、权限的定义     关于权限,百度百科的解释如下:权限(privilege)是指某个特定的用户具有特定的系统资源使用权力,像是文…

    Linux干货 2017-07-29