Linux命令(008) -- yum

yum命令(全称为Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

一、yum命令详解

# 语法
yum(选项)(参数)

# 选项
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。

# 参数
install:安装rpm软件包; 
update:更新rpm软件包; 
check-update:检查是否有可用的更新rpm软件包; 
remove:删除指定的rpm软件包; 
list:显示软件包的信息; 
search:检查软件包的信息; 
info:显示指定的rpm软件包的描述信息和概要信息; 
clean:清理yum过期的缓存; 
shell:进入yum的shell提示符; 
resolvedep:显示rpm软件包的依赖关系; 
localinstall:安装本地的rpm软件包; 
localupdate:显示本地rpm软件包进行更新; 
deplist:显示rpm软件包的所有依赖关系。

示例:

1.安装
yum install             # 全部安装 
yum install package1    # 安装指定的安装包package1 
yum groupinsall group1  # 安装程序组group1

2.更新和升级
yum update              # 全部更新 
yum update package1     # 更新指定程序包package1 
yum check-update        # 检查可更新的程序 
yum upgrade package1    # 升级指定程序包package1 
yum groupupdate group1  # 升级程序组group1

3.查找和显示
yum info package1      # 显示安装包信息package1 
yum list               # 显示所有已经安装和可以安装的程序包 
yum list package1      # 显示指定程序包安装情况package1 
yum groupinfo group1   # 显示程序组group1信息
yum search string      # 根据关键字string查找安装包

4.删除
yum remove | erase package1 # 删除程序包package1 
yum groupremove group1      # 删除程序组group1 
yum deplist package1        # 查看程序package1依赖情况

5.清除缓存
yum clean packages      # 清除缓存目录下的软件包
yum clean headers       # 清除缓存目录下的headers
yum clean oldheaders    # 清除缓存目录下旧的headers
 
6.生成缓存
yum clean all
yum makecache

二、yum的配置文件

yum 的配置文件分为两部分:main 和repository。

  1. main部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf中。
  2. repository部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d目录下的各文件中。

1、yum.conf文件详解

[main]
cachedir=/var/cache/yum/$basearch/$releasever 
# yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/cache/yum

keepcache=0
# 安装完成后是否保留软件包,0为不保留(默认为0),1为保留

debuglevel=2
# Debug 信息输出等级,范围为0-10,缺省为2

logfile=/var/log/yum.log
# yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。

exactarch=1
# 有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。

pkgpolicy=newest
# pkgpolicy:包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。

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

gpgcheck=1
# 有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository 都有效。默认值为0。

plugins=1
# 是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。

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

exclude=selinux*
# 排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开  

2、repo文件详解

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

[serverid]
# serverid用于区别各个不同的repository,必须有一个独一无二的名称。

name=Some name for this server
# name用于对repository的描述,支持像$releasever $basearch这样的变量。

baseurl=url://path/to/repository/
# baseurl是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
# baseurl=url://server1/path/to/repository/
#         url://server2/path/to/repository/
#         url://server3/path/to/repository/
# 其中url支持的协议有 http://、ftp://、file://三种。baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个,也就是说不能像如下格式:
# baseurl=url://server1/path/to/repository/
# baseurl=url://server2/path/to/repository/
# baseurl=url://server3/path/to/repository/
# 其中url指向的目录必须是这个repository header目录的上一级,它也支持$releasever $basearch这样的变量。

mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
# 指定一个镜像服务器的地址列表。

gpgcheck=1
exclude=selinux*
# pgcheck,exclude的含义和[main]部分相同,但只对此服务器起作用。

failovermethod=priority
# failovermethode有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失败则使用下一个,依次循环,priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。

enabled=1/0
# 当某个软件仓库被配置成enabled=0时,yum在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。 

示例:163的yum源文件

[base]
# name定义了软件仓库的名称,$releasever变量定义了发行版本
name=CentOS-$releasever - Base - 163.com
# baseurl定义了软件仓库服务器的地址
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
# gpgcheck选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的 
gpgcheck=1
# gpgkey定义用于校验的gpg密钥
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

 

posted @ 2016-08-18 17:55  运维苦旅  阅读(406)  评论(0编辑  收藏  举报