YUM仓库服务
Name: 北京——东东
LINUX系统运维技术交流群:4930609
QQ:6762567
Email:[email protected]
简介
在企业信息化应用环境中,安全性不仅取决于硬件防护设备、系统加固、漏洞扫与评估、服务器几种监控、访问控制等基础设施,如何减少鼓掌中断时间、提高存储及备份的完善性也是确保企业信息安全的重要措施。
通过源代码编译的方式来安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这种例外特性给管理员带来了额外的维护开销,当需要在大规模的服务器群应用时存在一定的局限性。
在RHEL6系统中构建并使用软件仓库,实现基于网络的软件包安装、更新、卸载的规范化管理。
一、部署YUM软件仓库
YUM的前身是YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由TSS公司(Terra Soft Solutions,INC.)使用Python语言开发而成,后来由杜克大学的Linux开发队伍进行改进,命名为YUM(Yellow dog Updater,Modified)。
要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件的软件仓库(Repository),提供软件仓库的服务器也称为“源”服务器,在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件了。
1、准备安装源(服务器端)
YUM软件仓库通过借助于HTTP或者FTP协议来进行发布,这样 可以面向网络中所有客户机提供软件源服务。为了便于客户机查询软件包、获取依赖关系等信息,在软件仓库中需要提供仓库数据(Repodata),其中收集了目录下所有RPM包的头部信息。
①安装并启用vsftpd服务
[root@localhost ~]# rpm -ivh /media/Packages/vsftpd-2.2.2-6.el6_0.1.i686.rpm
[root@localhost ~]# chkconfig vsftpd on
[root@localhost ~]# service vsftpd start
②准备软件仓库目录
[root@localhost ~]# mkdir /var/ftp/rhel6
[root@localhost ~]# cp -rfp /media/* /var/ftp/rhel6/
[root@localhost ~]# cd /var/ftp/rhel6/Packages/
[root@localhost Packages]# createrepo -g /media/repodata/repomd.xml ./
// 以现有的repodata目录为样板
2、配置软件仓库位置(客户机端)
在客户机上需要指定至少一个可用的软件仓库,然后才能使用yum工具来下载、安装软件包。yum工具使用的软件仓库信息存放在/etc/yum.repos.d/目录下扩展名为.repo的文件中。
[root@localhost ~]# vi /etc/yum.repos.d/rhel6.repo
[Packages] //仓库类别
name=Red Hat Enterprise Linux //仓库名称
baseurl=ftp://192.168.1.180/rhel6/Packages //URL访问路径
enabled=1 //启用此软件仓库
gpgcheck=0 //不验证软件包的签名
上述操作中,文件rhel6.repo需要手动创建,/etc/yum.repos.d/目录下若有其他末用的*.repo文件建议将其删除,配置"enabled=1"为默认项,可以省略;"gpgcheck"和"gpgkey"两行配置用来检查软件包是否为Red Hat发布,若无此要求则可以省略。
作为临时解决办法之一,实际上也可以使用本地文件夹作为软件仓库,例如,将RHEL6光盘挂在到/media目录以后,可以参考一下操作来进行配置。当然,这种方式仅限于在本机使用。
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
[local]
name=Red Enterprise Linux
baseurl=file:///media/Server
enabled=1
gpgcheck=0
二、使用yum工具管理软件包
1、查询软件包
yum工具的常见查询操作包括获取软件包安装,查询软件包的描述信息,搜索指定的软件包,分别可结合子命令list、info、search来实现。
①yum list ————查询软件包列表
直接执行“yum list”命令可以获得系统中的软件安装情况,也可以查询软件仓库中可用的软件包列表。其中子命令list表示列表查看。
[root@localhost ~]# yum list
若执行“yum list installed”则表示只列出系统中已安装的软件包,执行“yum list available” 则表示只列出软件仓库中可用(尚未安装)的软件包,执行“yum list updates”则表示只列出可以升级版本的软件包。
②yum info ————查询软件包的描述信息
当前要查看某个软件包的描述信息时,可以执行“yum info软件包名”,其中子命令info表示获取信息。例如,以下操作可以查看软件包httpd的信息
[root@localhost /]# yum info httpd
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
Installed Packages
Name : httpd
Arch : i686
Version : 2.2.15
Release : 9.el6
Size : 2.8 M
Repo : installed
From repo : local
Summary : Apache HTTP Server
URL : http://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
③yum search————查新指定的软件包
当需要根据某个关键词来查找相关的软件包时,可以执行“yum search关键词”,默认仅根据软件包名称和描述信息进行搜索;若执行“yum search all关键词”,可以扩大搜索范围。例如,以下操作将搜索软件仓库并列出与”httpd“相关的软件包。
[root@localhost /]# yum search all httpd
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
============================================================================ Matched: httpd ============================================================================
httpd-devel.i686 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.i686 : Tools for use with the Apache HTTP Server
httpd.i686 : Apache HTTP Server
mod_dav_svn.i686 : Apache httpd module for Subversion server
mod_dnssd.i686 : An Apache HTTPD module which adds Zeroconf support
mod_ssl.i686 : SSL/TLS module for the Apache HTTP Server
2、安装、升级、卸载软件包
使用yum工具安装、升级软件包、分别通过子命令install、update来完成、操作对象为指定的软件包名(可以有多个),执行操作时会自动检查并解决软件包之间的依赖关系,期间会提示用户按y键确认安装或升级操作,若希望自动确认为y,可以在yum命令后添加“-y”选项,例如,一下操作将从软件仓库下载并安装autofs软件包,并自动解决其依赖关系(安装必须的hesiod等软件包)。
[root@localhost ~]# yum -y install autofs
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package autofs.i686 1:5.0.5-31.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================
Package Arch Version Repository Size
=================================================================================
Installing:
autofs i686 1:5.0.5-31.el6 Packages 464 k
Transaction Summary
=================================================================================
Install 1 Package(s)
Total download size: 464 k
Installed size: 2.9 M
Downloading Packages:
autofs-5.0.5-31.el6.i686.rpm | 464 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing 1:autofs-5.0.5-31.el6.i686 1/1
duration: 246(ms)
Installed products updated.
Installed:
autofs.i686 1:5.0.5-31.el6
Complete!
使用yum工具卸载软件包时,通过子命令remove来完成,卸载操作通过软件仓库也可以完成。例如,以下操作将卸载libX11软件包,并自动解决其依赖关系(卸载依存的cairo、fprintd等软件包)。
[root@localhost ~]# yum -y remove libX11
三、经验总结
①通过查询操作“yum grouplist”,“yum groupinfo分组名称”可以获得YUM仓库中的软件分组信息。例如,执行“yum groupinfo Desktop”命令后将列出软件分组Desktop所包括的软件包等信息。
②使用yum工具管理软件包时,结合子命令groupinstall、groupdate、groupremove、可以针对软件分组进行安装、升级、卸载操作。例如,执行“yum -y groupremove Destop”命令,则会删除整个Desktop分组所包含的软件包。