技能要点:

配置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-3 root root8.0K 2012-11-30 Cluster

3.  dr-xr-xr-3 root root8.0K 2012-11-30ClusterStorage

4.  dr-xr-xr-4 root root2.0K 2012-11-30 p_w_picpaths

5.  dr-xr-xr-2 root root2.0K 2012-11-30isolinux

6.  dr-xr-xr-3 root root 584K 2012-11-30 Server

7.  dr-xr-xr-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 包组...”执行升级。