1.1 语法:
yum [options] [command] [package ...]
1.2 描述:
yum 是一个交互式的,基于rpm包的管理工具。它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
1.3 选项
-h:显示帮助信息;
-y:对所有的提问都回答“yes“。 常用
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。
1.4 命令:
install:用来安装最新版本的软件包或组,并且会自动安装所需的依赖软件包。
update:如果没有指定软件包名称,则会升级已经安装的所有软件到最新版本。如果指定了软件包,则只升级指定的软件包。
update-to:类似于update命令,但需要指定升级后的版本号。
check-update:用于检查软件包可用的最新版本。如果不指定软件包,则列出所有本地以及安装的软件可用升级版本。
upgrade:类似于update,当yum.conf文件中的obsoletes=1时,update和upgrade参数意思相同。当然,从本质上讲,update,是修补bug,或功能少量增加。而upgrade一般是是大的版本不同。改变比较大。要搞清楚其中不同。
upgrade-to:类似于update-to。
distribution-synchronization or distro-sync:把本地的软件版本变成和yum源上最新的版本一直。可能升级也可能降级。关键看你本地已安装软件版本和yum源上版本。最软件包组不生效。
remove or erase:删除指定的软件包。已经依赖当前软件的其他软件。
list:用来显示软件包的各种信息。内容简单了点。想要复杂内容,查看后面的list命令的选项。
# yum list iftop
iftop.x86_64 1.0-0.14.pre4.el6 @epel
info:显示软件包各种信息。常用
provides or whatprovides :该命令输出内容包含在info命令中。
search:强大的命令,用于在yum源中搜索目标软件包。使用频率更高。
clean:清楚缓存。还有特定的选项。查看后面的《CLEAN OPTIONS》部分
makecache: 下载header和元数据到本地。下次安装软件时,就会搜索本地的元数据。默认缓存时间是6小时,即6h。
#yum makeache
Loaded plugins: fastestmirror
Determining fastest mirrors
epel/metalink
* elrepo: mirrors.tuna.tsinghua.edu.cn
* epel: mirrors.ustc.edu.cn
base
base/group_gz
base/filelists_db
base/other_db
epel
epel/filelists_db
epel/updateinfo
epel/primary_db
epel/other_db
Metadata Cache Created
groupinstall:安装软件包组。
groupupdate:更新软件包组。
grouplist: 显示所有的可用软件包组。
groupremove: 删除软件包组。
groupinfo:显示软件包组信息。
shell :把安装命令放到文件中。通过shell命令调用该文件。
resolvedep:显示指定软件包的依赖。但好像不全。只能显示一个依赖软件包。
localinstall:用于安装本地的一组rpm文件。如果需要,会调用仓库依赖关键库。前提是你要把相关rpm文件都下载好,否则无法安装。
localupdate:用于升级本地rpm文件。
reinstall:先检查指定软件包的完整性。如果发生问题才重新安装
downgrade:降级
deplist:显示软件包依赖关系,比resolvedep详细多了。
repolist:显示所有的yum源:
# yum repolist
repo id repo name status
base CentOS-6 - Base - 163.com 6,706
elrepo ELRepo.org Community Enterprise Linux Repository - el6 263
epel Extra Packages for Enterprise Linux 6 - x86_64 12,327
extras CentOS-6 - Extras - 163.com 64
updates CentOS-6 - Updates - 163.com 270
LIST OPTIONS (较少使用)
yum list all:列出所有可用的软件包。等同于yum list available
yum list updates:列出所有可以升级的软件。
yum list installed: 列出所有已经安装的软件。好用,常用。
yum list extras:系统上的已经安装的软件包,其不在所有仓库中列表。很少用。
yum list obsoletes :
yum list recent:显示最近被加入到仓库中的软件列表。
CLEAN OPTIONS(较少使用)
yum clean expire-cache
yum clean packages
yum clean headers #执行yum makecache会缓存headers。
yum clean metadata #执行yum makecache会缓存metadata
yum clean dbcache
yum clean rpmdb
yum clean plugins
yum clean all
2、yum配置文件
# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum下载的RPM包的缓存目录
keepcache=1 #缓存是否保存,1保存,0不保存。
debuglevel=2 #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
logfile=/var/log/yum.log #yum的日志文件所在的位置
exactarch=1 #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1 #当等于1时,参数update和upgrade意思相同。默认是1.
gpgcheck=1 #是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1 #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=5 #允许保留多少个内核包。
exclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
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
#还有一个我找了很久的东西,其实默认配置文件中就有的,只是被注释了。
metadata_expire=90m #当执行yum makecache后,产生的metadata cache多久会失效,过期。h表示小时,m表示分钟。默认是6h。never表示永不过期。
关于yum.conf配置文件的详细帮助,查看man yum.conf手册。
3、yum源文件repo说明:
[base] #仓库id(repositoryid),必须是唯一的。
name=CentOS-$releasever - Base - 163.com #仓库的名字,描述仓库作用。
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
#baseurl 必须一个目录,是yum仓库repodata目录,即按照repodata格式要求存放各种文件。协议支持多种:http://, ftp:// or file://。 也可以指定多个basesurl。比如:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
#mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo.el6
#mirrorlist url指向一个文件,其中包含所有的baseurl地址。该选项可以baseurl替代。只要把其中所有内容都放到baseurl选项中即可。另外,还有一个metalink选项,类似于mirrolist。启用metalink,就会禁用mirroslist选项。
enabled=1 #yum根据此标识判断是否启用该仓库。
gpgcheck=1 #是否对所下载的软件进行GPG签名检查。可以选择关闭。不影响使用。
repo_gpgcheck=0 #是否对这个仓库的repodata数据做GPG签名检查。默认不设置。
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#gpgkey用于该仓库的GPG key文件。和gpgcheck选项配合使用,如果设置为1,则会调用当前选项的url。可以指定多个url。
4、yum公共源
用于php的rpm安装
rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
社区企业Linux仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
查看官网,可以看到更多其他yum源:
http://elrepo.org/tiki/tiki-index.php
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uhv
https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
163镜像源:
官方网站查看:http://mirrors.163.com/.help/centos.html
操作:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cd /etc/yum.repos.d/
Centos 6:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
最好下载最新版本。因为yum源会定期更新。看说明是每4小时更新一次。
Centos 7:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
Centos 5:
http://mirrors.163.com/.help/CentOS5-Base-163.repo
运行以下命令生成缓存
#yum clean all #yum makecache
4、创建本地yum源
目标:
把ES6.3的光盘中的Packages RPM包当做yum本地安装源。RPM包放到/var/ftp/pub中。
步骤:
1.首先挂着光盘:
#mount -iso9660 /dev/cdrom /mnt/cdrom
2.安装ftp服务
#cd /mnt/cdrom/Packages
#rpm -ivh vsftpd
#service vsftpd start
3.把光盘的Packages文件夹中的RPM包都拷贝到/var/ftp/pub中。
#cp -rv /mnt/cdrom/Packages /var/ftp/pub
备注:此时,Packages文件夹被拷贝到/var/ftp/pub下了。-rv参数的意思是把文件夹拷贝到目标目录中,并显示拷贝过程。
4.安装Createrepo程序
#cd /mnt/cdrom/Packages
#rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
#rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
#rpm -ivh createrepo-0.9.8-5.el6.noarch.rpm
5. 拷贝光盘上的comps-rhel6-Server.xml文件到/var/ftp/pub/Packages
# cp /mnt/cdrom/Server/repodata/c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml /var/ftp/pub/Packages
6. 使用Createrepo程序更新c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml。这个文件中存储的是所有RPM包的索引,执行完成后,将在Packages中新生成repodata文件夹。用于存储索引。
#cd /var/ftp/pub/Packages
#createrepo -g c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml /var/ftp/pub/Packages
7. 修改yum文件,调用本地源
#cd /etc/yum.repos.d
#cp rehl-source.repo rehl-source.repo.bak
#vi rehl-source.repo
编辑该文件:
[Packages]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///var/ftp/pub/Packages/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release