技能要点:
配置yum仓库包
源代码软件的编译安装
实验一:配置yum仓库包
3 配置YUM仓库及yum更新操作
3.1 问题
随着公司内部的Linux服务器不断增多,软件更新、系统升级等需求也逐渐凸显。为了提高软件包管理效率、减少重复下载,公司要求部署一台软件仓库服务器,面向内网提供安装源。
1.在本机准备一个文件夹作为YUM软件仓库,软件包从RHEL5光盘提供。
2.将本机配置为YUM客户机,使用上述YUM仓库。
3.使用yum工具来查询/安装/卸载软件包。
3.2 方案
3.3 实现
1.准备YUM软件仓库
YUM 的前身是YUP(Yellow dog Updater),最初由TSS 公司使用Python 语言开发而成,后来由杜克大学的Linux开发团队改进,命名为YUM (Yellow dog Updater,Modified) 。
使用YUM管理软件包最大的好处是:能够自动解决rpm 包之间的依赖关系,而无需管理员逐个、手工地去安装每一个rpm包 ,维护大量Linux 服务器时更加轻松自如。
YUM软件仓库可以是本地文件夹,也可以是网络上的一台HTTP或FTP服务器,如图-8所示,客户机只要在配置文件中指定仓库位置即可。
配置yum客户端:
.repo基本配置项
-【源名称】自定义名称,具有唯一性
-name:本软件源的描述字串
-baseurl:指定yum服务端的URL地址
-enable:是否启用此频道
-gpgcheck:是否验证待安装的RPM包
-gpgkey:用于RPM验证的秘钥文件
注:1代表是,0代表否,
秘钥文件所在地:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
1)在本机准备一个文件夹,复制RHEL 5.9光盘中的软件,作为YUM仓库
1. [root@svr5 ~]# mkdir/var/rhel5dvd //建仓库文件夹
2. [root@svr5 ~]# cd /misc/cd/ //切换到光盘文件夹
3. [root@svr5 cd]# cp-rf*/var/rhel5dvd/ //复制光盘目录下所有内容
2)确认已复制部署的软件包目录
其中:Server/目录包含RHEL 5系统的绝大部分rpm软件包,而VT/目录下包含于虚拟化技术相关的rpm软件包,Cluster/和ClusterStorage/目录下存放的是与集群、集群存储有关的rpm软件包。
1. [root@svr5 cd]# ls-lh/var/rhel5dvd/|grep"^d"
2. dr-xr-xr-x 3 root root8.0K 2012-11-30 Cluster
3. dr-xr-xr-x 3 root root8.0K 2012-11-30ClusterStorage
4. dr-xr-xr-x 4 root root2.0K 2012-11-30 images
5. dr-xr-xr-x 2 root root2.0K 2012-11-30isolinux
6. dr-xr-xr-x 3 root root 584K 2012-11-30 Server
7. dr-xr-xr-x 3 root root 12K 2012-11-30 VT
2.配置YUM客户机
YUM机制的软件包管理工具为yum命令,通过/etc/yum.repos.d/目录下扩展名为 .repo 的文件来存放仓库位置。典型的仓库设置操作如下所示(包括4个部分,后3个用的不多、可不做):
1. [root@svr5 ~]# vim /etc/yum.repos.d/dvd.repo //扩展名必须是.repo
2. [RHEL5-Server] //定义Server/目录软件源
3. name=RHEL5 Server //软件源的频道名称
4. baseurl=file:///misc/cd/Server //软件源存放的URL位置
5. enabled=1 //是否启用这个源
6. gpgcheck=1 //是否启用验证
7. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //公钥文件位置
8.
9. [RHEL5-VT]
10.name=RHEL5 VT //定义VT/目录软件源
11.baseurl=file:///misc/cd/VT
12.enabled=1
13.gpgcheck=1
14.gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
15.
16.[RHEL5-Cluster]
17.name=RHEL5 Cluster
18.baseurl=file:///misc/cd/Cluster
19.enabled=1
20.gpgcheck=1
21.gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
22.
23.[RHEL5-ClusterStorage]
24.name=RHEL5 ClusterStorage
25.baseurl=file:///misc/cd/ClusterStorage
26.enabled=1
27.gpgcheck=1
28.gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
配置文件添加无误后,执行以下操作清空yum缓存,然后重新yum list更新:
1. [root@svr5 ~]# yum clean all //清空yum缓存
2. Loaded plugins: product-id, security, subscription-manager
3. This system is notregistered to Red Hat Subscription Management. You can use subscription-manager to register.
4. Cleaning up Everything
5. [root@svr5 ~]# yum list //查看所有软件包列表
6. Loaded plugins: product-id, security, subscription-manager
7. This system is notregistered to Red Hat Subscription Management. You can use subscription-manager to register.
8. RHEL5-Cluster |1.5kB00:00
9. RHEL5-Cluster/primary |6.2kB00:00
10.RHEL5-Cluster 32/32
11.RHEL5-ClusterStorage |1.5kB00:00
12.RHEL5-ClusterStorage/primary |8.6kB00:00
13.RHEL5-ClusterStorage 39/39
14.RHEL5-Server |1.5kB00:00
15.RHEL5-Server/primary |932kB00:00
16.RHEL5-Server:[########### ]731/3335
17.....
18.zisofs-tools.x86_64 1.0.6-3.2.2 RHEL5-Server
19.zlib-devel.i386 1.2.3-7.el5 RHEL5-Server
20.zlib-devel.x86_64 1.2.3-7.el5 RHEL5-Server
21.zsh.x86_64 4.2.6-8.el5 RHEL5-Server
22.zsh-html.x86_64 4.2.6-8.el5 RHEL5-Server
若上述操作成功列出此前配置的/var/rhel5dvd/相关目录下的软件包信息,则说明YUM仓库配置生效了。
3.使用yum工具管理软件包
1)查询RPM软件包信息
直接执行yumlist时,会列出所有的rpm软件包,包括已安装的(最右侧的状态为“Installed”)、未安装的(最右侧的状态为相应的软件源名称)。若只希望查看某一个或几个软件包,直接指定软件名作为参数即可:
1. [root@svr5 ~]# yum list bash wgetgcchttpd
2. Installed Packages //已安装的包列表
3. bash.x86_64 3.2-32.el5 installed
4. wget.x86_64 1.11.4-3.el5_8.2 installed
5. Available Packages //未安装但可用的包列表
6. gcc.x86_64 4.1.2-54.el5 RHEL5-Server
7. httpd.x86_64 2.2.3-74.el5 RHEL5-Server
使用 yum info可以查看指定软件包的描述信息:
1. [root@svr5 ~]# yum info gcc //查看软件包gcc的描述信息
3)安装、卸载、升级软件包
使用“yuminstall 软件包...”安装指定的软件包,当安装的包较多时,可添加“-y”选项自动进行确认,否则逐个确认太麻烦:
1. [root@svr5 ~]# yum -y install bind-chroot //安装bind-chroot软件包
确认yum安装结果:
1. [root@svr5 ~]# yum list bind bind-chroot //使用yum检查
5. [root@svr5 ~]# rpm -q bind bind-chroot //使用rpm检查
使用“yumremove 软件包...”卸载指定的软件包:
1. [root@svr5 ~]# yum -y remove bind //卸载bind软件包
使用“yumupdate [软件包]...”升级指定的软件包,若为指定具体的软件包名,则尝试升级所有的软件包。当现有软件包的版本都已经最新时(根据现有的源),尝试升级时会告知“No Packages marked for Update”:
1. [root@svr5 ~]# yum -y update
2. Skipping security plugin, no data
3. Setting up Update Process
4. No Packages marked for Update
4.使用yum工具管理软件包组
RHEL 5针对本系统的RPM软件包做了分组(光盘源也一样),使用yum工具时,与安装单个的软件包类似,有许多对应的包组管理操作。主要包括grouplist、groupinfo、groupinstall、groupremove、groupupdate。
1)查询可用的软件包组
使用“yumgrouplist [包组]...”执行安装。
列出所有可用的包组:
1. [root@svr5 ~]# yum grouplist
只列出包含“开发”的包组:
1. [root@svr5 ~]# yum grouplist"*开发*"
2)查询指定包组的描述信息、软件包组成
使用“yumgroupinfo 包组...”进行查询。
了解“GNOME 桌面环境”包组的信息:
1. [root@svr5 ~]# yum groupinfo"GNOME 桌面环境"
了解“开发工具”包组的信息:
1. [root@svr5 ~]# yum groupinfo"开发工具"
3)安装指定的包组
使用“yumgroupinstall 包组...”执行安装。
安装“开发工具”、“开发库”包组,为下一节源代码编译提供开发环境(一共大约要安装222个软件包,耗时较长):
1. [root@svr5 ~]# yum -y groupinstall"开发工具""开发库"
4)卸载指定的包组
使用“yumgroupremove 包组...”执行卸载。
5)升级指定的包组
使用“yumgroupupdate 包组...”执行升级。