搭建YUM仓库服务

YUM仓库服务

        

Name: 北京——东东

LINUX系统运维技术交流群:4930609

QQ:6762567

Email:[email protected]

简介

       在企业信息化应用环境中,安全性不仅取决于硬件防护设备、系统加固、漏洞扫与评估、服务器几种监控、访问控制等基础设施,如何减少鼓掌中断时间、提高存储及备份的完善性也是确保企业信息安全的重要措施。

 

      通过源代码编译的方式来安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这种例外特性给管理员带来了额外的维护开销,当需要在大规模的服务器群应用时存在一定的局限性。

      RHEL6系统中构建并使用软件仓库,实现基于网络的软件包安装、更新、卸载的规范化管理。

一、部署YUM软件仓库

       YUM的前身是YUP(Yellow dog UpdaterYellow dog Linux 的软件更新器),最初由TSS公司(Terra Soft SolutionsINC.)使用Python语言开发而成,后来由杜克大学的Linux开发队伍进行改进,命名为YUM(Yellow dog UpdaterModified)

         要成功使用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工具的常见查询操作包括获取软件包安装,查询软件包的描述信息,搜索指定的软件包,分别可结合子命令listinfosearch来实现。

 

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工具安装、升级软件包、分别通过子命令installupdate来完成、操作对象为指定的软件包名(可以有多个),执行操作时会自动检查并解决软件包之间的依赖关系,期间会提示用户按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软件包,并自动解决其依赖关系(卸载依存的cairofprintd等软件包)。

[root@localhost ~]# yum -y remove libX11

 

三、经验总结

      通过查询操作“yum grouplist”,“yum groupinfo分组名称”可以获得YUM仓库中的软件分组信息。例如,执行“yum groupinfo Desktop”命令后将列出软件分组Desktop所包括的软件包等信息。

 

       使用yum工具管理软件包时,结合子命令groupinstallgroupdategroupremove、可以针对软件分组进行安装、升级、卸载操作。例如,执行“yum -y groupremove Destop”命令,则会删除整个Desktop分组所包含的软件包。

 

你可能感兴趣的:(yum源,yum搭建,yum工具,YUM仓库搭建)