使用createrepo創(chuàng)建自己的yum源
編者按:為什么要使用rpm來管理軟件包?相比使用shell腳本,從源碼編譯安裝的方式,排除規(guī)模引出的效率因素不講,腳本的可維護性比起rpm要糟糕一些,當然使用rpm就需要深入了解rpmbuild以及spec文檔,似乎也并不簡單。但從長遠來看,rpm、yum源的可維護性,要比“腳本”可靠一些。在本文中,花開分享了創(chuàng)建yum源的操作步驟,用于管理系統(tǒng)上“定制”的軟件包。以下為正文。
創(chuàng)建yum源需要一個ftp或者http服務,鑒于ftp煩人的防火墻策略(防火墻配制不當,ftp的模式——主動/初動使用不當,服務會變得不可用),建議使用http服務。
管理yum源需要一個工具createrepo,使用yum安裝:
yum -y install createrepo
然后就可以開始了:
1. 規(guī)劃、創(chuàng)建yum源目錄。
比如在http://www.bsdmap.com的根目錄下創(chuàng)建一個yum目錄,來保存 yum 源數(shù)據(jù)。
觀察官方y(tǒng)um源的目錄規(guī)劃,像是yum并不能自己維護arch,即并不能自己區(qū)分i386還是x86_64,所以是單獨放在不同的目錄下。
我維護的是基于CentOS Linux 5的包,規(guī)劃目錄如下:
$mkdir -p yum/centos/5/{i386,x86_64}
2. 初始化repodata信息:
$createrepo -p -d -o yum/centos/5/i386 yum/centos/5/i386 $createrepo -p -d -o yum/centos/5/x86_64 yum/centos/5/x86_64
這個時候,會在yum/centos/5/i386和yum/centos/5/x86_64目錄下,分別看到一個repodata目錄,這個就是yum源的Meta數(shù)據(jù),有了這個,yum就可以和這個“源”進行“數(shù)據(jù)信息”了。
當然這個時候,這個源是空的,沒有任何包可以安裝。后面再說如何在yum源中提供安裝包。
3. 配置本地的yum,使之使用自建的yum源。
簡單的來說,就是在本地的/etc/yum.repos.d目錄下新建一個配置文件文件(也可配置語句添加到已經(jīng)存在文件中),以.repo為文件名后綴,比如bsdmap.repo,然后內(nèi)容大概如下:
[bsdmap-yum] name=bsdmap-yum baseurl=http://www.bsdmap.com/yum/centos/$releasever/$basearch/ enabled=1 gpgcheck=0 gpgkey=
解釋:
[....] 代表這個庫的名字,必須是唯一的,不可以重復。
name= 是這個庫的說明,沒有太大的實際意義,只是一個字段說明。
baseurl= 說明采取什么方式傳輸,具體路徑在哪里,可以使用的方式有,file://,ftp://,http://等,關(guān)于baseurl中的變量,可以查看yum.conf 的手冊:man yum.conf ,在手冊的***一段有詳細描述。
enabled=1 說明啟用這個更新庫,0表示不啟用。
gpgcheck=1 表示使用gpg文件來檢查軟件包的簽名
gpgkey= 表示gpg文件所存放的位置,此處也可以有http方式的位置。
這時,當我們yum repolist 時,就可以看到bsdmap-yum 源了。
原文:http://www.bsdmap.com/2011/07/06/createrepo/
【編輯推薦】