美国上市公司

亿元级外企IT培训企业

  • 全国服务监督电话400-827-0010
IT培训 > 资料库 > Linux下程序包管理之YUM
  • Linux下程序包管理之YUM

    发布:IT培训 来源:资料库 时间:2014-12-29

  • 实验环境:

    CentOS release 6.6 (Final)  一台

    IP地址:172.16.249.230

    附带:CentOS release 6.6光盘镜像文件

    CentOS-6.6-x86_64-bin-DVD1.iso

    CentOS-6.6-x86_64-bin-DVD2.iso

    YUM(Yellow dog Updater, Modified) 由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于 RPM 包管理的字符前端软件包管理器。能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及FedoraRed Hat Enterprise Linux、CentOS、SUSE采用。

    RedHat 6.2 Linux修改yum源免费使用CentOS源 http://www.linuxidc.com/Linux/2013-07/87383.htm

    配置EPEL YUM源 http://www.linuxidc.com/Linux/2012-10/71850.htm

    Redhat 本地yum源配置 http://www.linuxidc.com/Linux/2012-11/75127.htm

    yum的配置文件说明 http://www.linuxidc.com/Linux/2013-04/83298.htm

    RedHat 6.1下安装yum(图文) http://www.linuxidc.com/Linux/2013-06/86535.htm

    YUM 安装及清理 http://www.linuxidc.com/Linux/2013-07/87163.htm

    CentOS 6.4上搭建yum本地源 http://www.linuxidc.com/Linux/2014-07/104533.htm

    一.YUM仓库和客户端简介

    YUM repository:yum仓库

        存储了众多rpm包,以及包的相关元数据的文件服务器

    文件服务器:

    HTTP:http://ip/centos/$releasever/os/$basearch/

    FTP:ftp://ip/centos/$releasever/os/$basearch/

    NFS:网络文件系统,nfs://ip/centos/$releasever/os/$basearch/

    FILE:本地,file:///centos/$releasever/os/$basearch/

    YUM Client :客户端

    配置文件:指向仓库的位置以及各种配置信息,每个yum客户端可以有多个仓库。

    缓存文件:/var/cache/yum/

    二.YUM的配置文件详解

    yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件。

    (一).关于yum.conf文件详解

    #cat /etc/yum.conf

    [main]

    cachedir=/var/cache/yum/$basearch/$releasever

    #yum下载的RPM包的缓存目录

    keepcache=0                                 

    #缓存是否保存,1保存,0不保存。

    debuglevel=2                                 

    #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。

    logfile=/var/log/yum.log                     

    #yum的日志文件所在的位置

    exactarch=1                                 

    #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。

    obsoletes=1                                 

    #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。

    gpgcheck=1                                   

    #是否检查GPG(GNU Private Guard),一种密钥方式签名。

    plugins=1                                   

    #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。

    installonly_limit=5                         

    #允许保留多少个内核包。

    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum

    distroverpkg=centos-release

    #  This is the default, if you make this bigger yum won't see if the metadata

    # is newer on the remote and so you'll "gain" the bandwidth of not having to

    # download the new metadata and "pay" for it by yum not having correct

    # information.

    #  It is esp. important, to have correct metadata, for distributions like

    # Fedora which don't keep old packages around. If you don't like this checking

    # interupting your command line usage, it's much better to have something

    # manually check the metadata once an hour (yum-updatesd will do this).

    # metadata_expire=90m

    # PUT YOUR REPOS HERE OR IN separate files named file.repo

    # in /etc/yum.repos.d

    (二).关于/etc/yum.repos.d/*.repo文件详解

    什么是repo文件?

    repo文件是CentOS中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!

    我们以一份系统自带的repo文件做为实例来探讨(#号后面是我加的注释):

    [base]

    name=CentOS-$releasever - Base

    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

    gpgcheck=1

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


    [base]                           

    #方括号里面的是软件源的名称,将被yum取得并识别

    name=CentOS-$releasever - Base     

    #这里也定义了软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,

    $releasever变量定义了发行版本,通常是5,6,7等数字,

    这个变量根据当前系统的版本架构不同而有不同的取值,

    这可以方便yum升级的时候选择 适合当前系统的软件包,以下同……

    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/   

    #上面的一行baseurl第一个字符是'#'表示该行已经被注释,将不会被读取,

    $basearch变量定义了系统的架构,可以是i386、x86_64、ppc等值

    这一行的意思是指定一个baseurl(源的镜像服务器地址)

    enabled=1           

    #这个选项表示这个repo中定义的源是启用的,0为禁用

    gpgcheck=1            #

    这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

    #定义用于校验的gpg密钥

    三.构建YUM仓库

    简要步骤说明

    (一).确认文件共享方式

    (二).把rpm包放置于能够被各yum客户端访问到位置

    (三).创建yum仓库的元数据

    createrepo命令

    #yum -y install createrepo


    为yum仓库创建元数据文件

    #createrepo 软件包文件目录

    实验案例:

    在本文中我创建一个本地光盘yum来构建一个本地YUM仓库。

    (一)、挂载本地光盘

    #mkdir /mnt/cdrom


    #新建挂载目录

    #mount -t iso9660 /dev/cdrom /mnt/cdrom


    #挂载光盘到/mnt/cdrom 目录

    #ls /mnt/cdrom


    #查看/mnt/cdrom 目录内容

    [root@LinuxHost yum.repos.d]# mkdir /mnt/cdrom

    [root@LinuxHost yum.repos.d]# mount -t iso9660 /dev/cdrom /mnt/cdrom 

    mount: block device /dev/sr0 is write-protected, mounting read-only

    [root@LinuxHost yum.repos.d]# ls /mnt/cdrom

    CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6

    EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6

    EULA            RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6

    GPL              repodata                  TRANS.TBL

    images          RPM-GPG-KEY-CentOS-6

    (二)、配置本地YUM源

    #cd /etc/yum.repos.d/


    #进入/etc/yum.repos.d 目录

    #ls


    #查看目录内容


    #mv CentOS-Base.repo CentOS-Base.repo.bak

    #mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak


    #重命名上面2个文件


    #vi CentOS-Media.repo


    #对CentOS-Media.repo 进行编辑


    (三)、修改CentOS-Media.repo内容

    [c6-media]

    name=CentOS-$releaserver - Media

    #自定义Yum源名称

    baseurl=file:///mnt/cdrom/

    #本地光盘挂载路径

    gpgcheck=1

    #检查GPG-KEY

    enabled=1

    #启用Yum源

    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-6

    #GPG-KEY路径

     

    [root@LinuxHost yum.repos.d]# cat CentOS-Media.repo

    [C6-Media]

    name=CentOS-$releaserver-Media

    baseurl=file:///mnt/cdrom

    gpcheck=1

    enabled=1

    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-6


    检查列出可用yum仓库元数据

    [root@LinuxHost yum.repos.d]# yum repolist

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    repo id                        repo name                                        status

    C6-Media                        CentOS-$releaserver-Media                        6,518

    repolist: 6,518

    至此,本地YUM源配置完成,我们就可以使用yum命令来安装管理程序包了。

  • 上一篇:Linux 安装配置curl 命令工具

    下一篇:Linux下程序包管理工具RPM

2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56