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 --updatelocal-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
enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release
注意:gpgcheck設置為0,則不需要認證簽名。