一、什么是yum
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
二、yum常用选项和参数
常用参数列举:
install:安装rpm软件包;
update:更新rpm软件包;
check-update:检查是否有可用的更新rpm软件包;
remove:删除指定的rpm软件包;
search:检查软件包的信息;
info:显示指定的rpm软件包的描述信息和概要信息;
shell:进入yum的shell提示符;
resolvedep:显示rpm软件包的依赖关系;
localinstall:安装本地的rpm软件包;
localupdate:显示本地rpm软件包进行更新;
deplist:显示rpm软件包的所有依赖关系。
repolist[all|enabled(默认)|disabled]:列出所有可用的yum repo
clean [all|packeages(包)|metadata(元数据)|expire-cache(过期数据)|rpmdb(rpm数据)plugins]:清理缓存
list [all|installed(已安装过的)|available(可用)]:列出yum包
--nogpgcheck 手动禁止检查来源及完整性
常用选项:
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。
三、yum源的配置
yum 的配置文件分为两部分:main 和repository
main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
yum.conf 文件一般位于/etc目录下,一般其中只包含main部分的配置选项。
[[email protected] ~]# cat /etc/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。 obsoletes=1 //这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。 gpgcheck=1 // 有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository 都有效。默认值为0。 plugins=1 //是否启用插件,默认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
四、配置本地yum源
1、挂载系统光盘
[[email protected] ~]# mount /dev/cdrom /media/cdrom/
2、配置本地yum源
[[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# vim CentOS-Media.repo 在baseurl 中修改第2个路径为/mnt/cdrom(即为光盘挂载点) 将enabled=0改为1
3、禁用默认的yum 网络源
[[email protected] yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
将yum 网络源配置文件改名为CentOS-Base.repo.bak,否则会先在网络源中寻找适合的包,改名之后直接从本地源读取。
4、执行yum命令安装软件
[[email protected] yum.repos.d]# rpm -e zsh [[email protected] yum.repos.d]# yum install zsh 在安装的显示信息中有下面一段可以说明是使用的本地yum源: .................................................. ======================================================================================== 软件包 架构 版本 仓库 大小 ======================================================================================== 正在安装: zsh i686 4.3.10-7.el6 c6-media 2.1 M .................................................. [[email protected] yum.repos.d]# cat CentOS-Media.repo [c6-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
通过查看刚才配置的yum源的仓库名为c6-media和使用yum安装所提示显示的仓库名一致,说明配置成功了。
五、配置yum源repo的文件格式说明
所有repository 服务器设置都应该遵循如下格式:
[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 只能有一个。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。
六、配置国内yum源
1、yum配置文件中可用的宏
$releasever:程序的版本,对Yum而言指的是redhat-relrase版本。只替换为主版本号,如Redhat6.5 则替换为6
$arch:系统架构
$basharch:系统基本架构,如i686,i586等的基本架构为i386
$YUM0-9:在系统定义的环境变量,可以在yum中使用
使用阿里云的源:
2、下载配置文件配置文件
[[email protected] yum.repos.d]# wget -P /etc/yum.repos.d/
3、使用yum安装
[[email protected] yum.repos.d]# yum repolist //加载可用的可用的yum repo 已加载插件:fastestmirror Determining fastest mirrors * base: mirrors.aliyun.com * epel: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.7 kB 00:00 base/primary_db | 3.6 MB 00:05 epel | 4.4 kB 00:00 epel/primary_db | 5.5 MB 00:03 extras | 3.4 kB 00:00 extras/primary_db | 29 kB 00:00 updates | 3.4 kB 00:00 updates/primary_db | 3.6 MB 00:02 仓库标识 仓库名称 状态 base CentOS-6 - Base - mirrors.aliyun.com 4,926 epel Extra Packages for Enterprise Linux 6 - i386 9,551 extras CentOS-6 - Extras - mirrors.aliyun.com 34 updates CentOS-6 - Updates - mirrors.aliyun.com 1,015 repolist: 15,526 [[email protected] yum.repos.d]# yum install -y zsh 已加载插件:fastestmirror 设置安装进程 Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 解决依赖关系 --> 执行事务检查 ---> Package zsh.i686 0:4.3.10-9.el6 will be 安装 --> 完成依赖关系计 依赖关系解决 ========================================================================================== 软件包 架构 版本 仓库 大小 ========================================================================================== 正在安装: zsh i686 4.3.10-9.el6 updates 2.1 M 事务概要 ========================================================================================== Install 1 Package(s) 总下载量:2.1 M Installed size: 4.6 M 下载软件包: zsh-4.3.10-9.el6.i686.rpm | 2.1 MB 00:02 运行 rpm_check_debug 执行事务测试 事务测试成功 执行事务 Warning: RPMDB altered outside of yum. 正在安装 : zsh-4.3.10-9.el6.i686 1/1 Verifying : zsh-4.3.10-9.el6.i686 1/1 已安装: zsh.i686 0:4.3.10-9.el6 完毕!
通过yum安装时显示的仓库名可以看出手动配置的yum源已生效,在使用变量进行配置文件时可能会出现错误的链接导致不能解析到镜像网站,若出现这种情况就手动输入系统的版本号以及平台的架构!
七、使用第三方软件库epel
Centos/RHEL默认的yum软件仓库非常有限,仅仅限于发行版本那几张盘里面的常规包和一些软件包的更新,可以安装第三方的epel扩展软件仓库,默认安装的epel-release扩展源由于是国外的,所以在日常使用时速度不是很快,下面就是介绍使用阿里云的第三方源。
1、先确认自己机器是否安装的有其他的epel扩展源,若有请卸载。卸载后下载 阿里云提供的epel源的下载到指定的位置。
[[email protected] ~]# rpm -q epel-releasepackage epel-release is not installed [[email protected] ~]#wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
2、查看下载文件的内容
[[email protected] yum.repos.d]# cat epel-6.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl= http://mirrors.aliyun.com/epel/6/ $basearch http://mirrors.aliyuncs.com/epel/6/ $basearch #mirrorlist= https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch= $basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [epel-debuginfo] name=Extra Packages for Enterprise Linux 6 - $basearch - Debug baseurl= http://mirrors.aliyun.com/epel/6/ $basearch/debug http://mirrors.aliyuncs.com/epel/6/ $basearch/debug #mirrorlist= https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch= $basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=0 [epel-source] name=Extra Packages for Enterprise Linux 6 - $basearch - Source baseurl= http://mirrors.aliyun.com/epel/6/SRPMS http://mirrors.aliyuncs.com/epel/6/SRPMS #mirrorlist= https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch= $basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
3、测试使用epel扩展源
[[email protected] ~]# yum install -y htop 已加载插件:fastestmirror 设置安装进程 Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.7 kB 00:00 epel | 4.4 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 解决依赖关系 --> 执行事务检查 ---> Package htop.i686 0:1.0.1-2.el6 will be 安装 --> 完成依赖关系计算 依赖关系解决 ============================================================================================ 软件包 架构 版本 仓库 大小 ============================================================================================ 正在安装: htop i686 1.0.1-2.el6 epel 73 k 事务概要 ============================================================================================ Install 1 Package(s) 总下载量:73 k Installed size: 158 k 下载软件包: htop-1.0.1-2.el6.i686.rpm | 73 kB 00:00 运行 rpm_check_debug 执行事务测试 事务测试成功 执行事务 Warning: RPMDB altered outside of yum. 正在安装 : htop-1.0.1-2.el6.i686 1/1 Verifying : htop-1.0.1-2.el6.i686 1/1 已安装: htop.i686 0:1.0.1-2.el6 完毕!
扩展学习:
http://www.cnblogs.com/mchina/archive/2013/01/04/2842275.html
http://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html