站长原创: 首发:
前言:
通过源代码编译的方式来安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这种例外特性给管理员带来了额外的维护开销,当需要在大规模的服务器群应用时存在一定的局限性。本案例将在CentOS 6 系统中构建并使用软件仓库,实现基于网络的软件包安装、更新、卸载的规范化管理。
-------------------------------------------------------------------------------------------------------
案例环境:
随着公司内部的Linux服务器不断增多,软件更新、系统升级等需求也逐渐凸显,为了提高软件包管理效率、减少重复下载,公司要求部署一台软件仓库服务器,面向内网提供安装源YUM。该企业案例拓扑如下图所示:
案例描述:
1)服务器使用CentOS 6 操作系统,IP地址为:192.168.100.100。
2)基于FTP方式为其他服务器提供软件安装源,使用yum命令安装软件。 3)软件仓库中的所有软件包均来自于CentOS 6 的DVD光盘(或镜像文件)。案例实施:
1)安装CentOS 6 操作系统
1.将光盘放入光驱,设置BIOS以光盘启动。(这里采用光盘安装来说明,我们也可采用PXE网络安装,可参考我的另一篇博文“” )2.启动服务器,选择“Install or upgrade an existing system”,进入图形化安装界面。
3.使用所有硬盘空间,并采用自动创建分区方案。
4.选择“桌面”软件组,并通过自定义添加“开发工具”。
5.完成安装过程,根据提示重启虚拟机并进行初始化,关闭防火墙,SELinux。
2)部署YUM软件仓库
(1)准备网络安装源(服务器端),YUM软件唱K通常借助于HTTP或FTP协议来进行发布,这样可以面向网络中的所有客户机提供软件源服务。为了便于客户机查询软件包、获取依赖关系等信息,在软件仓库中需要提供仓库数据(repodata),其中手机了目录下所有rpm包的头部信息。 1.从CentOS 6 光盘中安装vsftpd软件包,配置并启用vsftpd服务。2.准备如那就仓库目录,创建目录/var/ftp/CentOS6,并将CentOS 6 光盘中的内容复制到该目录下。
在CentOS 6 系统的安装光盘中,已针对软件目录Packages/建立好repodata数据,因此只要简单的将整个光盘中的内容通过HTTP或FTP进行发布,就可以作为软件仓库了,例如可以创建/var/ftp/CentOS6目录,并确保有足够的可用空间(本案例中建议大于5GB),然后就将CentOS 6 光盘中的所有数据复制到该目录下。3.在客户机上访问,确认能够下载软件仓库中的文件。
(2)配置软件仓库位置(客户机端),在客户机上需要指定至少一个可用的软件仓库,然后才能使用yum工具来下载、安装软件包。yum工具使用的软件仓库信息存放在/etc/yum.repos.d/目录下扩展名为.repo的文件中,仓库配置如下所示。
上述操作中,文件my.repo需要手动创建,/etc/yum.repos.d/目录下若有其他未用的*.repo文件建议将其删除。配置“enabled=1”默认项,可以省略;“gpgcheck”和“gpgkey”两行配置用来检查软件包是否为CentOS发布,若无此要求则可以省略。 作为临时解决办法之一,实际上也可以使用本地文件夹作为软件仓库,例如,将CentOS 6 光盘挂载到/media目录以后,可以参考以下操作来进行配置。当然,这种方式仅限于在本机使用。到这里YUM软件仓库的配置工作就算完成了。
----------------------------------------------------------------------------------------
3)使用yum工具管理软件包
1.查看当前系统中已安装了哪些软件包,查看YUM仓库中有哪些软件包可用。 yum list installed:表示只列出系统中已安装的软件包。 yum list available:表示只列出软件仓库中可用(尚未安装)的软件包。 yum list updates:表示只列出可以升级版本的软件包。2.分别搜索与DNS、Samba、mount相关的软件包,并查看其中autofs的描述信息。
yum search:查询指定的软件包。 yum search all :搜索软件仓库并列出与“http”相关的软件包。 yum info:查询软件包的描述信息。3.安装软件包bind-chroot、samba,卸载软件包bluez、ipw2200-firmware。
4.执行“yum grouplist”命令,查看YUM仓库中的软件分组。
5.卸载软件分组Desktop、X Window System,重启后就没有了桌面环境。