yum使用


yum简介

yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http ftp 站点,也可以是本地软件池,但必须包含rpm headerheader 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。

 

yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum apt 相同。apt 原为debian deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。

 

yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。

 

yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm包时遇到的依赖性问题,保持与RPM 数据库的一致性。

 

yum支持的协议

  • ftp://

  • http://

  • nfs://

  • file://

 

yum客户端的相关配置文件:

[root@Linux_11 ~]# rpm -qc yum

/etc/logrotate.d/yum  # yum日志滚动相关设置

/etc/yum.conf       # yum全局配置选项,为所有仓库提供公共配置

/etc/yum/version-groups.conf   #创建软件包组的相关设置

 

yum.conf主配置文件说明

[main]      # 公共主配置段,对所有yum源生效

cachedir=/var/cache/yum/$basearch/$releasever   # yum在此存储下载的rpm包和数据库,一般是/var/cache/yum

keepcache=1            # 是否保存从服务器下载下来的rpm包,是否保持yum缓存,默认为0

debuglevel=2           # 调试级别,0-10,默认是2

logfile=/var/log/yum.log        #yum存放yum日志文件的路径

exactarch=1    # 是否精确匹配平台

obsoletes=1  #简单的说就是相当于upgrade,允许更新陈旧的RPM包。

gpgcheck=1     # 是否进行来源合法性和包的吉完整性

plugins=1                  # 是否支持插件机制,默认是0不允许。

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

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

distroverpkg=centos-release        #指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。

 

如何查看yum配置文件说明:

[root@Linux_11 ~]# whatis yum.conf

yum.conf [yum]       (5)  - Configuration file for yum(8)

[root@Linux_11 ~]# man 5 yum.conf          # 5可以省略

 

注意:

  • 默认情况下yum在安装完了软件包之后,会将软件包自动删除,但是元数据不会删除

 

查看CentOS下面默认的yum

[root@Linux_11 ~]# cd /etc/yum.repos.d/

[root@Linux_11 yum.repos.d]# ls

CentOS-Base.repo       CentOS-Media.repo

CentOS-Debuginfo.repo  CentOS-Vault.repo

 

注意:其中CentOS-Media.repo是本地源

定义yum

配置本地yum

[root@Linux_11 yum.repos.d]# pwd

/etc/yum.repos.d

 

[repositoryID]        # yumID

name=Somenameforthisrepository    #yum源的名称,功能性的描述

mirrorlist=http://   # baseurl列表文件的地址,里面保存的是baseurl地址,要使用此项,yum必须支持插件功能

baseurl=url://path/to/repository/

            url://path/to/repository/

            url://path/to/repository/  # yum源的url地址,baseurl可以有多个URL地址

enabled={1|0}       # 是否启用此yum源,默认启用

gpgcheck={1|0}      # 是否进行gpg检验

gpgkey=URL          # gpgURL地址

enablegroups={1|0}     # 是否支持在此仓库上使用组批量管理程序包,默认为1,是启用的

failovermethod={roundrobin|priority}       # 指定使用什么算法来确定baseurl,默认为:roundrobin,意为随机挑选,后者是优先级,即自上而下的。但是默认是随机挑选,并不是自上而下。

cost  # 定义了cost的,且数字较小的,会被优先访问,默认为1000

 

注意:

  • baseurl可以有多个url

  • 且等号两边不能有空格

 

 

配置网络yum

primary_db元数据

 

yum命令的用法:

显示yum源列表:

repolist[all|enabled|disabled]

  • yum repolist all         #显示所有yum

  • yum repolist enabled       #显示可用的yum

  • yum repolist disabled       #显示不可用的yum

 

示例:显示所有yum

spacer.gif

提示:

status表示此yum源是否可用

 

示例:显示不能使用的yum

[root@Linux_1 yum.repos.d]# yum repolist disabled

Loaded plugins: fastestmirror, refresh-packagekit, security

repo id                                            repo name                                                 

C6.0-base                                          CentOS-6.0 - Base                                         

C6.0-centosplus                                     CentOS-6.0- CentOSPlus                                   

C6.0-contrib                                       CentOS-6.0 - Contrib                                      

C6.0-extras                                        CentOS-6.0 -Extras                                       

C6.0-updates                                       CentOS-6.0 - Updates                                      

C6.1-base                                          CentOS-6.1 - Base                                         

C6.1-centosplus                                     CentOS-6.1- CentOSPlus                                   

C6.1-contrib                                       CentOS-6.1 - Contrib                                       

C6.1-extras                                        CentOS-6.1 - Extras                                       

C6.1-updates                                       CentOS-6.1 - Updates                                      

C6.2-base                                          CentOS-6.2 - Base                                         

C6.2-centosplus                                     CentOS-6.2- CentOSPlus                                   

C6.2-contrib                                       CentOS-6.2 -Contrib                                      

C6.2-extras                                        CentOS-6.2 - Extras 

 

spacer.gif

spacer.gif

显示程序包:

 

list子命令

yumlist{available|installed|updates}[glob_exp1][...]

  • yum list all        #显示所有软件包

  • yum list available    #显示可用的软件包,但是尚未安装的软件包

  • yum list installed      #显示已经安装的软件包

  • yum list updates      #显示可供更新的软件包

  • yum list php*    #可以使用通配符

  • yum list extras

  • yum list obsoletes  #查看废弃的软件包,列出所有已安�b但不在Yum Repository �鹊娜砑�包

  • yum list recent  #查看最近添加到yum仓库中的软件包 

 

示例:显示所有软件包

 

yum list 默认是all,即显示所有软件包

 

 

说明:

显示为@anaconda表示是安装操作系统时安装的软件包

 

安装程序包:

install子命令

install package1[package2][...]

reinstall package1[package2][...](重新安装)

 

  • yum install  #安装软件包

  • yum reinstall    #重新安装

 

 

 

提示:

C  yum install可以一次安装多个包。

C  默认不输入“Y”是不会安装的

C  一个软件包有多个版本,则可以使用yum install 版本号来指定要安装的软件的版本。例如yum install gcc4.5.5,默认是安装最新版本

升级与降级程序包:

update [package1][package2][...]

downgrade package1[package2][...](降级)

 

  • yum update  #升级指定的程序包,同样可以一次升级多个包

  • yum downgrade  #降级指定程序包

 

 

 

检查可用升级:

  • yum check-update  #显示可供升级的软件包

  • yum upgrade  #显示可升级的软件包

 

提示:

两者作用一样

 

卸载程序包:

remove|erase package1[package2][...]

  • yum remove  #卸载指定程序包

  • yum erase  #卸载指定程序包

 

 

提示:

  1. 卸载包的时候连同它的依赖软件也会一同卸载

  2. 两个命令使用相同

查看程序包

info[...]information

 

  • yum info  #查看软件包的相关信息

查看某文件属于哪个软件包

(可以是某文件)是由哪个程序包所提供:

 

provides|whatprovides feature1[feature2][...]

  • yum provides  #查看某个文件由属于哪个软件包,后面可以跟多个文件一起查看

  • yum whatisprovides

 

提示:

两者作用一样

清理本地缓存:

clean [packages|metadata|expire-cache|rpmdb|plugins|all]

  • yum clean packages

  • yum clean metadata

  • yum clean expire-cache

  • yum clean rpmdb

  • yum clean plugins

  • yum clean all

构建缓存:

yum makecache

说明:将服务器上的软件包信息先在本地缓存以提高搜索安装软件的速度,不用执行也可以的。配合yum -C search xxx使用不用上网检索就能查找软件信息执行完 yum makecache之后,你可以用yum search subversionyum -C search subversion

搜索

search string1[string2][...]

以指定的关键字搜索程序包名及summary信息;

 

  • yum search #搜索程序包

 

 

 

示例:

yum search bash

 

提示:

"  并不是精确匹配,而是模糊匹配

"  不光匹配软件包名中包含的查找字符串,还会匹配summary中包括的信息

查看指定软件包所依赖哪些软件包

deplist package1[package2][...]

 

  • yum deplist  #查看某软软件包依赖什么软件包

 

查看yumrpmdb信息

versioin

查看yum事务历史:

history子命令

history[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

 

  • yum history info

  • yum history list

  • yum history packages-list 包名

  • yum history packages-info 包名

  • yum history summary

  • yum history addon-info

  • yum history redo

  • yum history undo

  • yum history rollback

  • yum history new

  • yum history sync

  • yum history stats

 

示例:查看事务历史

[root@Linux_1 ~]# yum history

Loaded plugins: fastestmirror, refresh-packagekit, security

ID     | Login user               | Date and time    | Action(s)      |Altered

-------------------------------------------------------------------------------

     7 | root<root>              | 2015-12-3110:00 | Install        |  104  

     6 | root<root>              | 2015-12-3109:58 | Install        |   10  

     5 | root<root>              | 2015-12-3109:55 | Install        |  132  

     4 | root<root>              | 2015-12-3109:48 | Install        |   36 <

     3 | root<root>              | 2015-12-3013:12 | Install        |   23 >

     2 | root <root>              | 2015-11-18 13:44 | Install        |  15  <

     1 | System<unset>           | 2015-11-1423:50 | Install        | 1107 >

 

 

[root@Linux_1 ~]# yum history summary

Loaded plugins: fastestmirror, refresh-packagekit, security

Login user                 | Time                | Action(s)        | Altered

-------------------------------------------------------------------------------

root <root>               | Last day            |Install          |      305

System <unset>            | Last 3 months       |Install          |     1107

root <root>               | Last 3 months       |Install          |       15

history summary

 

 

 

注意:

第一次yum的执行都启动了一次yum事务,查询不是事务,只有安装、升级、卸载才是事务

 

 

安装及升级本地程序包:

localinstall rpmfile1[rpmfile2][...]

(maintainedforlegacyreasonsonly-useinstall)

 

localupdate rpmfile1[rpmfile2][...]

(maintainedforlegacyreasonsonly-useupdate)

 

  • yum localinstall

  • yum locateupdate

 

提示:

以两命令是为了兼容,CentOS5之前的系统只能使用localinstall,现在已经被install代替。

包组管理的相关命令:

groupinstall  group1[group2][...]

groupupdate group1[group2][...]

grouplist [hidden][groupwildcard][...]

groupremove group1[group2][...]

groupinfo group1[...]

 

  • yum groupinstall     #安装软件包组

  • yum groupupdate    #更新软件包组

  • yum grouplist  #查看所有的软件包组

  • yum groupremove  #删除软件包组

  • yum groupinfo  #查看某一个软件包组的相关信息

 

 

yum的命令行选项:

  • --nogpgcheck:禁止进行gpgcheck

  • �Cy:自动回答为“yes

  • -q:静默模式;

  • --disablerepo=repoidglob:临时禁用此处指定的repo

  • --enablerepo=repoidglob:临时启用此处指定的repo

  • --noplugins:禁用所有插件;

 

yumrepo配置文件中可用的变量:

  • $releasever  #当前OS的发行版的主版本号,如67

  • $arch  #平台

  • $basearch  #基础平台,如i386x86_64

 

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

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

 

例如:

http://mirror.centos.org/centos/6/i386/os

http://mirror.centos.org/centos/6/x86_64/os

 

提示:

如上使用变量的好处是当客户端发生变化的时候,不用更改baseurlurl,因为会主动取得当前客户端的相关信息。

手动创建yum仓库:

createrepo[options]<directory>

--basedir

 

第一步:下载并安装createrepo命令

[root@Linux_1 ~]# yum install createrepo#python研发

 

第二步:建立元数据

createrepo ./  #把所有需要作成yum源的软件包放在./目录下

 

手动挂载光盘并创建本地yum

第一步:挂载光盘

[root@Linux_11 yum.repos.d]# mount /dev/cdrom /mnt/

 

第二步:创建并修改本地yum

#

# To use this repo, put in your DVD and use it with the other repostoo:

#  yum --enablerepo=c6-media[command]

# or for ONLY the media repo, do this:

#

#  yum --disablerepo=\*--enablerepo=c6-media [command]

 

[c6-media]

name=本地yumCentOS-$releasever - Media

baseurl=file:///mnt/  # 此处baseurl必须指向repodata目录

       file:///media/

      file:///media/cdrecorder/

gpgcheck=1

enabled=1

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

 

注意:

"  baseurl必须指向repodata目录 

"  必须使用file://协议

"  第三个“/”指的是文件系统的根路径                                              

 

注意事项:

  • 如果配置文件中指明作版本精确匹配,yum源只能升级,不能降级。例如:CentOS6.1yum源可以指向6.2yum源,只能升不能降。

  • yum的安装是会启动事务的,事务又有隔离概念,也就是说不能在两个终端同时使用yum安装,这是不允许的,因此产生阻塞。

 

 

 


本文出自 “静心&清心” 博客,谢绝转载!

你可能感兴趣的:(yum)