使用createrepo創建自己的yum源

使用createrepo創建自己的yum源

相比使用shell腳本,從源碼編譯安裝的方式,腳本的可維護性比起rpm要糟糕一些,而且從長遠來看,rpm、yum源的可維護性,要比“腳本”可靠一些。在本文中,花開分享了創建yum源的操作步驟,用於管理系統上“定製”的軟件包。

編者按:爲什麼要使用rpm來管理軟件包?相比使用shell腳本,從源碼編譯安裝的方式,排除規模引出的效率因素不講,腳本的可維護性比起rpm要糟糕一些,當然使用rpm就需要深入瞭解rpmbuild以及spec文檔,似乎也並不簡單。但從長遠來看,rpm、yum源的可維護性,要比“腳本”可靠一些。在本文中,花開分享了創建yum源的操作步驟,用於管理系統上“定製”的軟件包。以下爲正文。

創建yum源需要一個ftp或者http服務,鑑於ftp煩人的防火牆策略(防火牆配製不當,ftp的模式——主動/初動使用不當,服務會變得不可用),建議使用http服務。

管理yum源需要一個工具createrepo,使用yum安裝:

yum -y install createrepo

然後就可以開始了:

1. 規劃、創建yum源目錄。

比如在http://www.bsdmap.com的根目錄下創建一個yum目錄,來保存 yum 源數據。

觀察官方yum源的目錄規劃,像是yum並不能自己維護arch,即並不能自己區分i386還是x86_64,所以是單獨放在不同的目錄下。

我維護的是基於CentOS Linux 5的包,規劃目錄如下:

$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數據,有了這個,yum就可以和這個“源”進行“數據信息”了。

當然這個時候,這個源是空的,沒有任何包可以安裝。後面再說如何在yum源中提供安裝包。

3. 配置本地的yum,使之使用自建的yum源。

簡單的來說,就是在本地的/etc/yum.repos.d目錄下新建一個配置文件文件(也可配置語句添加到已經存在文件中),以.repo爲文件名後綴,比如bsdmap.repo,然後內容大概如下:

[bsdmap-yum]
name=bsdmap-yum
baseurl=http://www.bsdmap.com/yum/centos/$releasever/$basearch/
enabled=1
gpgcheck=0
gpgkey=

解釋:

[....] 代表這個庫的名字,必須是唯一的,不可以重複。

name= 是這個庫的說明,沒有太大的實際意義,只是一個字段說明。

baseurl= 說明採取什麼方式傳輸,具體路徑在哪裏,可以使用的方式有,file://,ftp://,http://等,關於baseurl中的變量,可以查看yum.conf 的手冊:man yum.conf ,在手冊的最後一段有詳細描述。

enabled=1 說明啓用這個更新庫,0表示不啓用。

gpgcheck=1 表示使用gpg文件來檢查軟件包的簽名

gpgkey= 表示gpg文件所存放的位置,此處也可以有http方式的位置。

這時,當我們yum repolist 時,就可以看到bsdmap-yum 源了。


此文檔爲轉載文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章