YUM倉庫的建立
YUM倉庫是採用C/S架構的,也就是簡單的客戶端服務端價架構,YUM repository一個很好的例子就是CentOS的安裝光盤.
我們分別來看看服務端和客戶端
服務端包括數據和元數據
數據指的就是所有可以安裝的rpm包,他們通常保存在Packages文件夾裏面
元數據就是這個服務端yum 倉庫的屬性,他們一般是由.sqlite.bz2(對於CentOS6和7)結尾的壓縮文件,保存在repodata文件夾裏面
下圖顯示的是在centos安裝光盤的根目錄下,package爲rpm安裝文件所在目錄,repodata爲元數據文件所在目錄
由此可以得知包含repodata的目錄就是YUM repository
客戶端
YUMrepository 的主配置文件是/etc/yum.conf
這個文件包含了所有repository的集中配置。
其中需要注意的是cachedir=這行,顯示從repository cache的元文件和安裝文件存放路徑。
Keepcache這一行如果值是1,表示要保存安裝文件和元文件,0爲不用保留.
一個YUM repository從客戶端的角度來看就是一個倉庫(base),base按不同用途大概有,base,updates, extra, 和eepel等等. 客戶端要鏈接到不同的倉庫,需要配置相應的文件,文件的目錄在/etc/yum.repos.d/以repo結尾的文件,下圖是一個系統自帶的倉庫默認配置文件/etc/yum.repo.d/CentOS-Base.repo
下面我們來詳細分析下下圖各個選項的含義
[base]這個就是這個要鏈接到的倉庫的名,也就是repo id,這個id在一臺機器要是唯一的
name:倉庫別名可以不唯一,也叫 repo name
baseurl:指定倉庫所在的文件,也就是repodata所有的目錄, 這個可以是網絡路徑(http://,ftp://,nfs://)或本地路徑(file///),還可以直接執行多個路徑,需要新起一行,以空白開頭.
Mirrorlist:指向一個baseurl文件.
gpgcheck=是否要做完整性校驗,0爲否,1爲做
gpkey:指定完整性校驗所需要的公鑰路徑
還有一個就是enabled=1或0,這個如果沒有默認爲1,作用是,是否開啓這個鏈接.
一些變量的解釋:
$releasever:當前程序的版本號如5,6或者7
$basearch:當前系統價格x86_64或者i386
有了這些變量我們就可以根據當前系統來選擇與之相對應的庫鏈接
下圖是個荔枝,文件/etc/yum.repos.d/cdrepo.repo如果我們指向個光盤的庫
一些需要常用命令:
yumrepolist 所以鏈接的庫
yuminfo 包名:列出安裝包詳細信息
yumprovides 文件名:查看這個文件是由那個安裝包產生的
例如: yum info htop
yuminstall 包名:安裝包
yumreinsntall 包名:重新安裝包
yumremove 包名:卸載包,需要注意的是,所有相關的其他程序也會隨之卸載