通過rmp安裝Linux包時由於依賴關係原因總是提示需先安裝其依賴的包,創建yum既是先將所有的系統安裝包創建一個庫,然后對所有安裝包進行一個依賴關係分析,那么在下次安裝rpm包時則會自動依據創建的yum去安裝所依賴的所有包。比如安裝Oracle時就需安裝N多個依賴包,如果通過yum來裝就省去了先查找安裝這些依賴的包了,方便很多。下面以創建本地YUM為例,當然最好的是創建ftp YUM,那么其它人也可直接通過它來安裝。

一.创建个目录

mkdir /u2/yum/pub

并从光盘中(我的目錄是media/RHEL_5.4\ DVD)所有安裝包(主要有Server,VT,Cluster,ClusterStorage)複製至此目錄(/u2/yum/pub)。

cp -rv  /media/RHEL_5.4\ DVD/Server  /u2/yum/pub/

cp -rv  /media/RHEL_5.4\ DVD/VT  /u2/yum/pub/

cp -rv  /media/RHEL_5.4\ DVD/Cluster  /u2/yum/pub/

cp -rv  /media/RHEL_5.4\ DVD/ClusterStorage  /u2/yum/pub/

.安装createrepo

createrepo是配置YUM源的配置工具,检查当前是否已经安装createrepo包

# rpm  -qa |grep  createrepo  

如果显示为尚未安装,则需要执行如下的命令完成安装:

# rpm  -ivh  /media/ RHEL_5.4/Server/createrepo-0.4.4-2.fc6.noarch.rpm

ps:版本因操作系统的版本有所区别,请查找当前系统的createrepo版本

.创建yum repositoryxml-rpm-metadata包依賴關係文件

#createrepo  -g  /u2/yum/pub/Server/repodata/comps-rhel5-server-core.xml  /u2/yum/pub/Server/

#createrepo  -g  /u2/yum/pub/VT/repodata/comps-rhel5-vt.xml  /u2/yum/pub/VT/

#createrepo  -g  /u2/yum/pub/Cluster/repodata/comps-rhel5-cluster.xml  /u2/yum/pub/Cluster/

#createrepo-g /u2/yum/pub/ClusterStorage/repodata/comps-rhel5-cluster-st.xml  /u2/yum/pub/ClusterStorage/

执行createrepo命令后系统会自动扫描相关目录,将rpm包加入到YUM源的数据库中。如下圖

spacer.gif

.创建本地yum客户端的repo文件

# vi /etc/yum.repos.d/local.repo名字可以随便起,但是要以.repo为后缀)

[Server]                   #(yum块区域)
name=Server                 # (名字可以随便起)
baseurl=file:///u2/yum/pub/Server    #(搜索路径,必须指向你本机的yum源路径,如果架設的是FTP yum則是ftp://目錄形式
gpgcheck=0     #(gpgcheck是gpg验证是否开启的选项,1是开启,0是不开启,一般情况可以关掉)
enabled=1      #(是否启用,0为不启用,1为启用,过没这一项,就是启用)

[VT]

name=VT

baseurl=file:///u2/yum/pub/VT

gpgcheck=0

enabled=1


[Cluster]

name=Cluster

baseurl=file:///u2/yum/pub/Cluster

gpgcheck=0

enabled=1


[ClusterStorage]

name=ClusterStorage

baseurl=file:///u2/yum/pub/ClusterStorage

gpgcheck=0

enabled=1

.测试使用yum来安装软件包


[root@linux-a yum.repos.d]# yum –y install samba

Loading "installonlyn" plugin

Loading "rhnplugin" plugin

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Setting up repositories

CS                        100% |=========================| 1.1 kB    00:00    

base                      100% |=========================| 1.1 kB    00:00    

VT                        100% |=========================| 1.1 kB    00:00    

Cluster                   100% |=========================| 1.1 kB    00:00    

Reading repository metadata in from local files

primary.xml.gz            100% |=========================| 3.9 kB    00:00    

################################################## 32/32

primary.xml.gz            100% |=========================| 727 kB    00:00    

################################################## 2113/2113

primary.xml.gz            100% |=========================| 5.8 kB    00:00    

################################################## 31/31

primary.xml.gz            100% |=========================| 5.6 kB    00:00    

################################################## 32/32

Parsing package install arguments

Resolving Dependencies

--> Populating transaction set with selected packages. Please wait.

---> Downloading header for samba to pack into transaction set.

samba-3.0.23c-2.i386.rpm  100% |=========================| 108 kB    00:00    

---> Package samba.i386 0:3.0.23c-2 set to be updated

--> Running transaction check

Dependencies Resolved

=============================================================================

Package                 Arch       Version          Repository        Size

=============================================================================

Installing:

samba                   i386       3.0.23c-2        base               16 M

Transaction Summary

=============================================================================

Install      1 Package(s)        

Update       0 Package(s)        

Remove       0 Package(s)        

Total download size: 16 M

Is this ok [y/N]:

大功告成,本地yum repository创建成功。

如果要安裝第三方軟件包:

例:將第三方軟件包copy/u2/yum/pub/Other/目錄下。

執行一次依賴關係分析:

Createrepo /u2/yum/pub/Other/   第三方軟包不能再使用參數g哦。