天天看點

createrepo:建立本地源

repodata作為軟體的倉庫,其目錄下有四個必要檔案:filelists.xml.[gz],other.xml.[gz],primary.xml.[gz]和repomd.xml(md 意思是 metadata),其中最主要的是repomd.xml檔案。一般出現的找不到repodata目錄或檔案的錯誤的原因通常有三個:一是路徑問題;二是沒有生成repodate目錄;三是*.repo配置檔案沖突(這個需要特意注意)。

建立本地源步驟如下:

1、安裝createrepo包;

2、建立本地源目錄(假若本地源在目前家目錄下)

   2.1 $mkdir -p local-yum/i386/       #其中i386是包放置目錄

   2.2 将安裝包放置到i386目錄中

   2.3 createrepo local-yum/           #建立一個源

3、配置yum源(可以單獨建立一個repo檔案,也可以添加到已經存在的repo檔案中)

************************************************************

[local-yum]

name=local-yum

baseurl=file:///home/test/local-yum/               #檔案目錄不能設定到i386,否則本地源使用會報錯

enabled=1

gpgcheck=0

解釋:

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

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

baseurl=  說明采取什麼方式傳輸,具體路徑在哪裡,可以使用的方式有,file://,ftp://,http://等

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

gpgcheck=1 表示使用gpg檔案來檢查軟體包的簽名

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

4、yum工具介紹

   yum工具有很多的參數可供使用,如下:

        yum install 軟體名1 [軟體名2] [...]

        yum update [軟體名1][軟體名2] [...]

        yum check-update

        yum upgrade [軟體1] [軟體2] [...]

        yum remove | erase 軟體名1 [軟體名2] [...]

        yum list [...]

        yum info [...]

        yum provides | whatprovides feature1 [feature2] [...]

        yum clean [ packages | headers | metadata | dbcache | all ]

        yum makecache

        yum groupinstall 軟體組1 [軟體組2] [...]

        yum groupupdate 軟體組1 [軟體組2] [...]

        yum grouplist [hidden] [groupwildcard] [...]

        yum groupremove group1 [group2] [...]

        yum groupinfo 軟體組名 [...]

        yum search 字元串1 [字元串2] [...]

        yum shell [檔案名]

        yum resolvedep 依賴關系1 [依賴關系2] [...]

        yum localinstall rpm包1 [rpm包2] [...]

        yum localupdate rpm包1 [rpm包2] [...]

        yum reinstall 軟體包1 [軟體包2] [...]

        yum downgrade 軟體包1 [軟體包2] [...]

        yum deplist 軟體包1 [軟體包2] [...]

        yum repolist [all|enabled|disabled]

        yum help [command]

    以上就是yum全部的可用參數了,自動分析依賴性關系是它最好的一個特點,也是目前最友善的安裝方法。

5、更新本地源,在倉庫所在目錄下

   createrepo --update local-yum/          # 更新本地源

   createrepo local-yum/                   # 重新生成metadata

6、用的上的指令

      createrepo --update: 

   有時候你的軟體倉庫中含有很多的軟體包,雖然隻是其中的一小部分有所改動但是你卻不必為每個軟體包重新産生中繼資料,這樣做明顯太浪費時間了。這就是--update 選項誕生的原因。

   像之前一樣運作 createrepo 指令但是添加了--update 選項.

       $createrepo --update local-yum/

   現在 createrepo 隻更新那些在上次産生中繼資料之後被改變,添加或者删除了的項目.

      verifytree 

   如果你剛剛做了一個 repo 并且你想要驗證在你的 repo 中的所有東西都是正确且可以完成其功能的話,你可以運作 erifytree 指令來檢查所有的 repodata 和軟體包。

7、建立基于html的更新源

   7.1 安裝httpd安裝包

   7.2 如上建立本地更新源

       cd /var/www/html/

       mkdir -p nsmc

       cd nsmc

       mkdir RPMS SRPMS

   7.3 拷貝相關檔案到RPMS和SRPMS目錄中

   7.4 在nsmc所在目錄下執行如下指令

       createrepo nsmc           #建立倉庫

   7.5 service httpd start       #啟動httpd守護程序,這是關鍵地方之一,否則在其他機器上會提示找不到相關源

   7.6 編寫repo檔案

*************************************

[nsm]

name=NeoShine Linux Desktop 5 nsmc repo - i386

baseurl=http://xxx.xxx.xxx.xxx/nsmc

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release

注意:gpgcheck設定為0,則不需要認證簽名。

本文轉自 yntmdr 51CTO部落格,原文連結:http://blog.51cto.com/yntmdr/1716197,如需轉載請自行聯系原作者

繼續閱讀