自己生成yum倉庫
上篇文章我們生成了自己的rpm包,那麼我們如何解決依賴關系?我們從别人那拿過來的rpm包,又如何解決依賴關系呢?如果系統CD光牒提供的yum源不能解決我們的依賴關系呢?
有時候我們從網絡上down下一個rpm包,安裝的時候會提示有依賴關系,如果依賴少的話可以手動安裝所依賴的包,如果依賴非常多,甚至依賴十幾個包的時候,怎麼辦?
如果可以自己生成yum倉庫,那麼可不可以像系統自帶的那樣,用yum groupinstall 指令,直接安裝一個組包呢?
下面來解決這個問題。
一、生成單個rpm包的yum源
我們需要安裝createrepo工具
它由軟體包createrepo-0.9.9-17.el6.noarch.rpm生成
#yum -y install createrepo
安裝完之後就可以用createrepo指令來生成中繼資料
假設我們把下載下傳的rpm包和他的依賴包都放到了/var/ftp/rhel6/目錄這下
#createrepo -v /var/ftp/rhel6///生成中繼資料檔案目錄和檔案
-v 檢視詳細資訊verbose
此時會生成一個repodata目錄,裡面會存放以很長的名字命名的檔案,代表你的yum倉庫建立完成。
此時你修改yum源的配置檔案,指定/var/ftp/rhel6/這個目錄,就可以用yum來安裝目錄下的rpm包了
#vim /etc/yum.repos.d/rhel-server.repo //編輯yum源配置檔案
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///var/ftp/rhel6
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
儲存退出;
#yum clean all//清理一下yum源緩存
#yum repolist//重新list一下,你會發現,你的目錄下有多少rpm包,就會list多少個
簡單的自定義yum源就建立成功,如果你想把系統CD光牒下的rpm包和自己的rpm包重新生成yum源,隻需把系統CD光牒中的包和自己的包一起放到一個目錄下,然後用createrepo+目錄路徑 ,建立自己的yum倉庫。最後編輯yum的配置檔案即可
二、生成組包的yum源
要想使用groupinstall指令安裝一個組的包,其實和單個包的類似,你可以參考系統CD光牒中repodata目錄下,以comps-xxx-Server.xml結尾的檔案,自己手動寫一個;也可以用指令自動生成一個
用到的指令為:yum-groups-manager
安裝軟體包:
#yum -y install yum-utils-1.1.30-14.el6.noarch
安裝成功之後即可使用指令生成一個組的.xml檔案
比如我們以telnet 和telnet-server生成一個叫mygroup的組
#yum-groups-manager -n "mygroup" --id=mygroup
--save=mygroup.xml --mandatory python shell
//生成組的.xml檔案
#ls mygroup.xml
#vim mygroup.xml
生成的檔案内容大緻如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
<group>
<id>mygroup</id>
<default>false</default>
<uservisible>true</uservisible>
<display_order>1024</display_order>
<name>mygroup</name>
<description></description>
<packagelist>
<packagereq type="mandatory">telnet</packagereq>
<packagereq type="mandatory">telnet-server</packagereq>
</packagelist>
</group>
</comps>
選項:
-n: 組名,
--id :組的id,如果不指定,會基于組名來生成,組id用來辨別組
--save :儲存結果到檔案
--mandatory:存儲組下包的名,隻需寫上包名即可,多個包名之間用空格間隔
最後用createrepo -g 指令加入組到yum倉庫
#createrepo -g mygroup.xml /var/ftp/rhel6
#yum clean all
#yum grouplist //檢視一下可用的groups
#yum -y groupinstall mygroup//現在可以進行組安裝了
總結:
其實很簡單,總共就2條指令
createrepo +目錄路徑
yum-groups-manager -n 組名 --id=組id --save=儲存檔案名 --mandatory 包名 報名 ...
建立完組的之後不要忘記再用createrepo指令把組加入到yum倉庫!
本文轉自Jx戰壕 51CTO部落格,原文連結:http://blog.51cto.com/xujpxm/1397474,如需轉載請自行聯系原作者