一、Yum的一点介绍:
YUM是“Yellow dog Updater, Modified”的缩写,可执行程序名为yum。YUM是一个在Fedora中的Shell前端软件包管理器。在红帽企业版Linux 5中引入YUM的重要原因之一,便是YUM能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装,便于管理大量系统的更新问题。
二、YUM的特点有:
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf)
自动解决增加或删除rpm包时遇到的倚赖性问题
使用方便
保持与RPM数据库的一致性
三、为什么要进行YUM库的配置
我们在安装好Linux后要进行YUM源的设置,是为了方便日后对软件包的管理,解决单独安装RPM软件包时可能产生的软件包依赖关系(使用yum人仓库中安装软件包,如果还有依赖的软件包,yum工具会一并安装。
在企业中,我们会设置企业自己的YUM源(库)方便企业Linux系统(主要是红帽和红帽的Fedora)对软件包的管理,更重要的原因是保证YUM源的安全性,因为一个软件包从源头就被开了口子那我们安装了这样的软件就等于给自己身上开刀!
所以,我们要对YUM库进行必要的配置工作。
四、YUM知识简单介绍
yum 命令接受命令行语法为:
(以下为man中的信息)
yum [options] [command] [package ...]
command is one of:
* install package1 [package2] [...]
* update [package1] [package2] [...]
* check-update
* upgrade [package1] [package2] [...]
* remove | erase package1 [package2] [...]
* list [...]
* info [...]
* provides | whatprovides feature1 [feature2] [...]
* clean [ packages | headers | metadata | dbcache | all ]
* makecache
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
* search string1 [string2] [...]
* shell [filename]
* resolvedep dep1 [dep2] [...]
* localinstall rpmfile1 [rpmfile2] [...]
* localupdate rpmfile1 [rpmfile2] [...]
* reinstall package1 [package2] [...]
* downgrade package1 [package2] [...]
* deplist package1 [package2] [...]
* repolist [all|enabled|disabled]
* help [command]
(以下是几个常用命令的介绍(以RHEL5(红帽企业版5)为蓝本)
1.列出软件包
使用yum list命令可以列出系统已安装的软件包和仓库中可用的软件包,以列表格式给出。其命令格式为:
yum list [...]
可以包含的子命令如下:
1.1 yum list [all|glob_exp1][glob_exp2][...]
列出所有已安装和仓库中可用的软件包
1.2 yum list [glob_exp1][...]
列出仓库中所有可用的软件包
1.3 yum list updates [glog_exp1][...]
列出仓库中比系统已安装软件包新的软件包
1.4 yum list installed [glob_exp1][...]
列出已安装的软件包
1.5 yum list recent
列出新加入仓库的软件包
其中子命令后面可以跟一个正则表达式参数,用于选定列出的软件包。
RHEL5中,对相似或提供相关功能的软件包还有公共的分组。可以使用yum grouplist命令可以列出软件包仓库中的分组。
2.安装软件包
和rpm -i命令类似,使用yum install命令可以安装一个或多个软件包,将软件报名作为参数附加在yum install命令之后即可。
yum自动解决软件包之间的依赖关系。其命令语法为:
yum install package1 [package2] [...]
还可以使用yum groupinstall命令成组安装软件包。组名可以用yum grouplist查询。其命令行语法为:
yum groupinstall group1 [group2] [...]
[注]如果软件组名包含空格,需要用引号将组名括起来以防yum将其理解为多个参数。
3.删除软件包
和rpm -e命令类似,使用yum remover或yum erase命令可以删除一个或多个软件包。其命令语法为:
yum remove package1 [package2] [...]
或
yum erase package1 [package2] [...]
[注意]如果删除的软件包还有被其他软件包所依赖,那些软件包也会被一并删除。
同样,还可以使用yum groupremove命令按组删除软件包。其命令行语法为:
yum groupremove group1 [group2] [...]
4.检查新版本
使用yum check-update命令还可以检查YUM仓库中是否有比本地已安装的软件包的更新版本。
5.升级软件包
和rpm -U或rpm -F命令类似,使用yum update命令可以安装一个软件包的更新版本。其命令行语法为:
yum update [package1] [package2] [...]
如果需要将系统所有已安装的软件包更新到最新版本,可以使用不加参数调用yum update命令。
同样,还可以使用yum groupupdate命令成组升级软件包。其命令说语法为:
yum groupupdate group1 [group2] [...]
五、YUM库的配置
讲解如下,总结的步骤见后面:
1.配置文件在/etc/yum.repos.d下
2.默认模板为rhel-debuginfo.repo,内容如下:
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/$basearch/Debuginfo/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3.在进行配置前copy一份rhel-debuginfo.repo,以保留模板
#cp rhel-debuginfo.repo server.repo
4.修改server.reop
#vi server.reop
[Server]
name=Red Hat Enterprise Linux Server (名称注释)
baseurl=ftp://192.168.0.254:/var/ftp/pub/Server (这里写YUM源的地址)
enabled=1 (开启库)
gpgcheck=0 (校验用,检查文件是否正确)
(这里原本是校验文件的地址!此处将这一行删除了,因为gpgchech=0,即不启用校验)
5.#yum clean all (清除缓存)
6.yum list (列表)
7.yum install package
步骤:
1.cd /etc/yum.repos.d
2.cp rhel-debuginfo.repo name.repo name.repo
3.vi name.repo(修改方法见上面)
4.yum clean all
5.yum list
6.yum install
六、YUM源的设置(本地做源)
我们可以把RHEL5.iso解压后做源~这里要注意的是:
1.保证网络畅通(因为企业应用都是通过网络远程进行的,因此,我这里要连接到源的位置)
#ping 192.168.0.254
2.查看共享列表
#showmount -e 192.168.0.254
(nfs支持远端挂载,可以不把源文件的拷贝到本地使用,但以要依然讲解挂载后进行本地的拷贝)
3.进行远端挂载
#mount 192.168.0.254:/var/ftp/pub /mnt/
4.创建本地源拷贝目录
#mkdir /DATA/ (你可以自己设定)
5.拷贝源(这里以Server为对象进行讲解,而/mnt/VT,/mnt/Cluster,/mut/ClusterStorage,方法相同)
#cp -rv /mnt/Server/ /DATA/
6.拷贝结束后进入/DATA/
#cd /DATA/
(在这之后尽量umount,因为保持mount系统会保持通信,占用资源)
7.#cp Server/repodata/comps-rhel5-server-core.xml /root
[注意]在这一步,如果你进行的是VT等源的设置则要在其对应的目录(Server/repodata)下查找comps-rhel5-vt.xml等拷贝到任一目录,这里是/root
8.删除原来的库的配置(如果是VT等,注意其删除其相应的目录)
#rm -rf Server/repodata/
9.#rpm -ivh Server/createrepo-0.4.11-3.el5.noarch.rpm
[注意]这个不是VT等源也要进行的,只进行一次即可
10.#cd Server/
VT等进入其相应的目录下
11.创建以comps-rhel5-server-core.xml为模板的YUM源
#createrepo -g /root/comps-rhel5-server-core.xml /DATA/Server
原则同上,文件和目录要相应
12.#cp /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/local.repo
13.#vim /etc/yum.repos.d/local.repo
(这一步的详细内容见第五部分)
14.#yum clean all
15.#yum list
16.#yum install httpd
(这里仅是测试性进行Apache的安装)
对于上面所说,是把Server等下载到了本地做源。而我们自己用虚拟机时可以只需把RHEL5.ISO挂载在/mnt或/media下,进行一下YUM源的设置(见五),其中只要把baseurl改为相应的地址,如:/mnt/RHEL5。这样就省了上面的前11步。