1. RPM
RPM就是廠商先在他們的系統(tǒng)上編譯好了用戶所需要的軟件,打包成RPM安裝包,然后將安裝包直接發(fā)布給用戶去安裝瞄崇。
RPM優(yōu)點(diǎn):
- RPM內(nèi)含已經(jīng)編譯過的程序與設(shè)置文件等數(shù)據(jù)呻粹,可以讓用戶免去重新編譯的困擾;
- RPM在被安裝之前苏研,會(huì)先檢查系統(tǒng)的硬盤容量等浊、操作系統(tǒng)版本等,避免文件被錯(cuò)誤安裝摹蘑;
- RPM提供軟件版本信息筹燕、依賴屬性軟件名稱、軟件用途說明衅鹿、軟件所含文件等信息撒踪;
- RPM管理的方式使用數(shù)據(jù)庫記錄RPM文件的相關(guān)參數(shù),便于升級(jí)大渤、刪除制妄、查詢與驗(yàn)證。
- RPM安裝
rpm -ivh a.i386.rpm
rpm -ivh http://website.name/path/pkgname.rpm
// 安裝之前可以使用test選項(xiàng)來測(cè)試一下該軟件是否可以被安裝
rpm -ivh pkgname.i386.rpm --test
// 指定安裝目錄泵三,默認(rèn)為/usr/local
rpm -ivh pkgname.i386.rpm --prefix=/usr/local/software
- RPM升級(jí)
rpm -Fvh pkgname.i386.rpm
- RPM查詢
// 查詢是否有安裝nginx軟件
rpm -q nginx
// 列出nginx軟件安裝后的所有目錄與文件
rpm -ql nginx
// 列出nginx軟件的相關(guān)說明數(shù)據(jù)耕捞,包含開發(fā)商衔掸、版本與說明等
rpm -qi nginx
// 分別找出nginx的設(shè)置文件與幫助文件
rpm -qc nginx
rpm -qd nginx
// 列出安裝nginx所需的依賴軟件
rpm -qR nginx
// 找出文件屬于哪個(gè)已安裝的軟件
rpm -qf /bin/sh
上面是查已安裝到系統(tǒng)上面的軟件信息,這部分信息由/var/lib/rpm提供俺抽;如果我們要查未安裝的rpm文件內(nèi)容敞映,就得使用rpm -qp (p是package的意思):
// 找出安裝軟件的依賴文件
rpm -qpR filename.i386.rpm
在查詢本機(jī)上面的RPM軟件相關(guān)信息時(shí),不需要加版本名磷斧。因?yàn)樗鼤?huì)由/var/lib/rpm數(shù)據(jù)庫去查詢振愿。但是查某個(gè)未安裝的RPM文件,就需要指定整個(gè)文件名瞳抓。
- 卸載RPM
// 如果存在已安裝的軟件依賴本軟件埃疫,則卸載不會(huì)成功
rpm -e pam
- 重建rpm數(shù)據(jù)庫
由于文件經(jīng)常會(huì)安裝/刪除/升級(jí),某些操作可能會(huì)導(dǎo)致RPM數(shù)據(jù)庫/var/lib/rpm內(nèi)的文件損壞孩哑。我們可以使用--rebuilddb重建
rpm --rebuilddb
2. SRPM
通常不同的distribution所發(fā)布的RPM文件并不能在其他的distribution上用栓霜。如果我們真的需要安裝其他distribution提供的好用的RPM軟件怎么辦?還好横蜒,還有SRPM胳蛮,這個(gè)SRPM所提供的軟件內(nèi)容并沒有經(jīng)過編譯,它提供的是源碼丛晌。
通常一個(gè)軟件在發(fā)布的時(shí)候仅炊,會(huì)同時(shí)釋出RPM于SRPM。RPM必須在相同的環(huán)境下才能安裝澎蛛,而SRPM既然是源碼抚垄,自然就可以通過修改SRPM內(nèi)的參數(shù)設(shè)置文件,然后重新編譯成能合適我們Linux環(huán)境的RPM文件谋逻。
為何說CentOS是“社區(qū)維護(hù)的企業(yè)版”呢呆馁?因?yàn)镽ed Hat公司的RHEL發(fā)布后,連帶會(huì)將SRPM發(fā)布毁兆。一些社區(qū)的朋友就將這些SPRM收集起來并重新編譯成所需要的軟件浙滤,再重新發(fā)布成CentOS,真要感謝SRPM啊气堕。
假設(shè)我們下載了一個(gè)SRPM文件纺腊,又不想修改這個(gè)文件內(nèi)的源碼與相關(guān)設(shè)置值,利用rpmbuild直接生產(chǎn)RPM包來安裝
rpmbuild --rebuild filename.i386.src.rpm
3. YUM在線升級(jí)機(jī)制
RPM軟件會(huì)有所謂的文件依賴問題茎芭。要是我們將這些依賴軟件先列表揖膜,在有要安裝軟件需求的時(shí)候先到這個(gè)列表去找,同時(shí)與系統(tǒng)內(nèi)已安裝的軟件相比較梅桩,沒有安裝的依賴軟件就一口氣安裝起來次氨,那不就解決依賴問題了嗎?這就是YUM機(jī)制摘投。
由于distribution必須先要釋出軟件煮寡,然后將軟件放置于yun服務(wù)器上虹蓄,以提供客戶端來要求安裝與升級(jí)之用的。因此我們要使用yum的功能幸撕,必須要先找到合適的yun server才行薇组。
- YUM操作
// 查詢以pam開頭的軟件有哪些
yum list pam*
// 安裝
yum install pam-devel
// 升級(jí)
yum update pam-devel
// 刪除
yum remove pam-devel
- YUM設(shè)置文件
vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5