上一篇介紹了YUM的基本安裝和卸載等功能的使用,這裏就介紹一下如何搭建本地YUM倉庫以及系統剛安裝完成YUM倉庫的配置信息。
YUM倉庫:存儲了衆多RPM包以及包的相關元數據(repodata)的文件服務器
可做YUM倉庫的類型:http、ftp、nfs、file(本地)
先來看下yum客戶端的配置文件:
它的配置文件由兩部分組成:主配置文件和其他配置文件
主配置文件:
這個文中定義了使用yum安裝時的緩存文件保存的目錄,是否保留安裝完成後rpm包,日誌文件路徑,是否啓用插件,是否校驗包的完整性等一些內容,我們可以看到最後兩行內容,告訴了我們yum倉庫的其他配置文件的路徑在/etc/yum.repos.d/這個目錄下。
以上爲centos6系列安裝完成後的默認配置文件。
注:如果沒有連接網絡的話是不能直接使用yum安裝所需要的軟件包的。
以上爲Centos-Base.repo文件的內容。
YUM倉庫的基本配置:
[repo_id]:倉庫ID(不可與其他倉庫id相同)
name=:倉庫名字
baseurl=:倉庫的位置(可使用http、nfs、ftp、file)
enable=:是否啓用(啓用1不啓用0,默認爲1可不指定)
gpgcheck=:是否校驗包的完整性
gpgkey=:公鑰位置(可不指定)
cost=:優先級
這裏演示的yum倉庫搭建爲本地yum倉庫並且需要使用createrepo這個程序,默認是沒有安裝的可以掛載光盤到本地然後使用rpm -ivh createrepo(使用TAB補全一下程序包名)安裝createrepo程序。接下來將ISO裏面Packages這個目錄中的rpm包複製到本地目錄中,使用createrepo創建一下然後編輯配置文件即可。(當然默認光盤就存在搭建好的yum倉庫環境,我們使用時只需要修改下配置文件即可)
接下來會一步一步的操作,請耐心看完。謝謝
0x01 掛載光盤並複製Packages裏面的程序包到本地
這裏我將多個命令寫到了一起,中間加&&代表前一個命令執行成功後才繼續執行下一個命令,否則不執行。在複製的過程中可能會很慢,請耐心等待。
0x02 接下來看看有沒有安裝createrepo程序,如果沒有安裝使用 rpm -ivh 安裝一下,我這裏安裝過了就不演示安裝了。使用createrepo創建repodata 速度有點慢,耐心等待。
這裏我又將多個命令寫到一起了,慢慢解釋。
createrepo這個命令我們只需要在後面加上rpm包所在的目錄即可,這裏不用任何參數,同樣的 && 和上面一樣上一個執行成功纔會執行下一個,ls -ld /yum/repodata/這個目錄就是上一條命令執行成功後的結果如果有這個目錄則說明創建成功。這裏爲了方便觀賞我用了“\”來換行(平時如果不加\則是命令執行加上\就會換行並且繼續輸入內容)
第二行的內容是創建一個配置文件,我們所有的yum倉庫配置文件(除主配置文件外)都在/etc/yum.repos.d/這個目錄下並且以repo結尾的,同樣後面使用“\”來進行換行
從第三行開始到最後一行都可以直接使用編輯器來編輯這個文件來寫配置我全部用echo 輸出內容並且追加到這個文件裏面去了
配置文件的主要內容爲:
倉庫ID爲:file,倉庫名字爲:file,倉庫地址:file:///yum/,不檢查完整性,開銷爲200,(這個開銷默認值爲1000,其實就是設置倉庫優先級的。。。這個值越低表示優先使用此倉庫),這樣就創建完成了。然後就是驗證是否創建成功。
隨便找個程序來用yum安裝一下或者使用yum repolist來列出所有的yum倉庫如果有我們創建的倉庫即爲創建成功
到這裏我們的yum倉庫就算是正式搭建完成了,下面來介紹一下配置yum倉庫的高級用法
在yum倉庫的配置文件我們可能會看到使用的是mirrorlist然後後面跟的是個路徑並且該路徑裏面使用了一些變量。接下來就解釋一下這些內容。
mirrorlist:可以使用mirrorlist來替換baseurl,通常它會指向一個url,這個url是個文本文件,其中保存了大量的鏡像服務器,當我們使用yum倉庫時,會獲取此列表文件,而後通過fastestmirror插件來判斷哪一個鏡像爲訪問最快的服務器,並以之作爲本次訪問的url(centos默認安裝完成後帶有的配置文件就是這樣的)
變量:
$releaserver:當前OS發行版的主版本號
$arch:當前OS的硬件平臺
$basearch:基礎平臺,例如i386,x86_64等
例如163的yum:
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
$releasever:我的主版本號爲centos6.6所以會自動跳到http://mirrors.163.com/centos/6/os/
$basearch: 我使用的平臺爲x86_64所以最終地址爲
http://mirrors.163.com/centos/6/os/x86_64/下面,而在centos中默認yum倉庫則爲mirrors來代替