linux 之 yum 介绍 <转>

时间:2021-06-06 14:30:58

原文在这里  http://doophp.sinaapp.com/archives/linux/yum-setting-parameter.html

因为是程序员出身,平时虽然经常接触服务器,偶尔也会要装一些软件、配置优化什么的,可能还是个人习惯问题,一般情况下我还是以手工编译居多(这其中的优缺点就不在这里啰嗦了)。这几天有同事提出YUM其实更便于日常管理维护,确实,相对于手工编译,服务器多的时候YUM确实要方便不少。今天整理了一下YUM相关的背景知识,东西还不够详细,后续会逐步完善。

YUM简单介绍

YUM,是Yellow dog Updater, Modified的简称,具体念什么?既然是首字母缩写念Y-U-M应该没错吧,(有时候也听人叫晕,那就晕吧:).起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开 发团队进行改进,遂有此名。

YUM的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。YUM的关键之处 是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。

YUM的特点:

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

我们可以在这个地方找到与自己系统相对应的版本YUM:http://ayo.freshrpms.net/

比如安装如下版本:
[root@localhost beinan]# rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm

YUM命令

yum [options] [command] [package ...]

其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为”yes”),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象

包的更新

检查可更新包: yum check-update

更新所有包: yum update

更新指定包: yum update package_name

版本升级: yum upgrade

包安装与删除

yum install package_name

yum remove package_name

yum groupinstall group1 安装程序组group1

yum groupremove group1 删除程序组group1

包搜索

搜索特定包: yum search package_name

搜索包含特定文件名的包:yum provides name

包列表

列出所有安装或更新的包: yum list

列出指定包:yum list name

列出可更新包:yum list updates

列出已安装包:yum list installed

列出已安装但不包含在资源库中的包:yum list extras

yum info package_name 显示安装包信息

清除缓存

yum clean packages 清除缓存目录下的软件包

yum clean headers 清除缓存目录下的 headers

yum clean oldheaders 清除缓存目录下旧的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

YUM源的设置及国内源

全局配置

YUM的配置通常存储在/etc/yum.conf文件内.

#cat /etc/yum.conf

linux 之 yum 介绍 <转>

各项参数详细介绍:

cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。

debuglevel:除错级别,0──10,默认是2

logfile:yum的日志文件,默认是/var/log/yum.log。

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

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

exactarch:有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。

retries:网络连接发生错误后的重试次数,如果设为0,则会无限重试。

tolerent:也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。

除了上述之外,还有一些可以添加的选项,如

exclude:排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。

gpgchkeck: 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。

源服务器配置

YUM源配置文件通常存储在/etc/yum.repos.d/目录下面

# cat /etc/yum.repos.d/CentOS-Base.repo

默认baseurl是被注释掉的,并启用了mirrorlist。baseurl指定了centos的官网源地址,而mirrorlist则是服务器地理位置附近的一些镜像列表,yum程序会搜获附近速度最快的镜像作为yum源。如果你需要指定某个源地址,就需要将baseurl这一行的注释取消,修改后面的值为你需要修改的服务器地址,同时把mirrorlist这一行注释掉——一般我们不需要做此改动,除非我们用内部源。

所有的源服务器设置都应该遵循如下格式:

[serverid]

name=Some name for this server

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

其中serverid是用于区别各个不同的repository,必须有一个独一无二的名称。

name,是对repository的描述,支持像$releasever $basearch这样的变量;

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这样的变量。

url之后可以加上多个选项,如gpgcheck、exclude、failovermethod等,比如:

[updates-released]

name=Fedora Core $releasever – $basearch – Released Updates

baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch

http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch

http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch

gpgcheck=1

exclude=gaim

failovermethod=priority

其中gpgcheck,exclude的含义和[main]部分相同,但只对此服务器起作用,

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

几个变量

$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。

$arch,cpu体系,如i686,athlon等

$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。

对yum.conf设定完成,我们就可以好好体验yum带来的方便了。

国内源

中科大的yum源:

wget http://centos.ustc.edu.cn/CentOS-Base.repo

163的yum源:

wget http://mirrors.163.com/.help/CentOS-Base-163.repo

sohu的yum源

wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

下载源.repo文件后,备份默认源配置,替换上新的版运行yum makecache命令使新源生效

#yum makecache