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 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。
yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
配置
yum 的配置文件分为两部分:main 和repository
main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
yum.conf 文件一般位于/etc目录下,一般其中只包含main部分的配置选项。
cat /etc/yum.conf
除了上述之外,还有一些可以添加的选项,如:
exclude=selinux* // 排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
gpgcheck=1 // 有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository 都有效。默认值为0。
配置本地yum源
(1) 挂载光盘
(2)配置本地yum源
查看/etc/yum.repo.d/下有多个文件
CentOS-Base.repo 是yum 网络源的配置文件
CentOS-Media.repo 是yum 本地源的配置文件
修改CentOS-Media.repo文件
cat /etc/yum.repo.d/CentOS-Media.repo
在baseurl 中修改第2个路径为 /mnt/(即为光盘挂载点)
将enabled=0改为1
(3)禁用网络yum源
将CentOS-Base.repo 重命名为CentOS-Base.repo.bak,否则会先在网络源中寻找适合的包,改名之后直接从本地源读取。
(4) 执行yum命令测试
关于repo的格式
所有repository 服务器设置都应该遵循如下格式:
serverid 是用于区别各个不同的repository,必须有一个独一无二的名称;
name 是对repository 的描述,支持像releaseverbasearch这样的变量;
baseurl 是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
其中url 支持的协议有 http:// ftp:// file:// 三种。baseurl 后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl 只能有一个,也就是说不能像如下格式:
其中url 指向的目录必须是这个repository header 目录的上一级,它也支持releaseverbasearch 这样的变量。
url 之后可以加上多个选项,如gpgcheck、exclude、failovermethod 等,比如:
其中gpgcheck,exclude 的含义和[main] 部分相同,但只对此服务器起作用,failovermethode 有两个选项roundrobin 和priority,意思分别是有多个url可供选择时,yum 选择的次序,roundrobin 是随机选择,如果连 ·接失败则使用下一个,依次循环,priority 则根据url 的次序从第一个开始。如果不指明,默认是roundrobin。
配置阿里云YUM源
阿里云Linux安装镜像源地址:
http://mirrors.aliyun.com/
http://mirrors.aliyun.com/repo/
CentOS系统更换软件安装源
第一步:备份你的原镜像文件,以免出错后可以恢复。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
第三步:运行yum makecache生成缓存
yum clean all //清理缓存
yum makecache //更新缓存
yum工具的使用
rpm的更新
rpm包的安装和删除
安装rpm包,如xmms-mp3
yum install xmms-mp3
删除rpm包,包括与该包有倚赖性的包
yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text
yum暂存(/var/cache/yum/)的相关参数
清除暂存中rpm包文件
yum clean packages
清除暂存中rpm头文件
yum clearn headers
清除暂存中旧的rpm头文件
yum clean oldheaders
清除暂存中旧的rpm头文件和包文件
yum clearn 或#yum clearn all
注:相当于yum clean packages + yum clean oldheaders</pre>
包列表
列出资源库中所有可以安装或更新的rpm包
yum list
列出资源库中特定的可以安装或更新以及已经安装的rpm包
yum list mozilla#yum list mozilla* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
列出资源库中所有可以更新的rpm包
yum list updates
列出已经安装的所有的rpm包
yum list installed
列出已经安装的但是不包含在资源库中的rpm包
yum list extras
注:通过其它网站下载安装的rpm包</pre>
rpm包信息显示(info参数同list)
列出资源库中所有可以安装或更新的rpm包的信息
yum info 列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
yum info mozilla#yum info mozilla* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
列出资源库中所有可以更新的rpm包的信息
yum info updates
列出已经安装的所有的rpm包的信息
yum info installed
列出已经安装的但是不包含在资源库中的rpm包的信息
yum info extras
注:通过其它网站下载安装的rpm包的信息</pre>
搜索rpm包
搜索匹配特定字符的rpm包
yum search mozilla
注:在rpm包名,包描述等中搜索
搜索有包含特定文件名的rpm包
yum provides realplay </pre>
增加资源库
例如:增加rpm.livna.org作为资源库
安装Livna.org rpms GPG key
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
检查GPG Key
rpm -qa gpg-pubkey* 显示Key信息
rpm -qi gpg-pubkey-a109b1ec-3f6e28d5
(注:如果要删除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)</pre>
yum常用的命令
示例:
yum search +软件名或者关键字 //查找相关功能的包,然后下载,如:
yum search iperf3
yum search ifconfig
找到后安装
yum install +找到的包名
yum search php | grep redis