作者:Daniel Veillard
daniel@veillard.com 翻譯:Carelezz
carelezz74@hotmail.com 翻譯稿版本:0.01 2002/11/02
rpmfind : rpm2html的客戶端工具
1. rpmfind是什么?
2. 如何使用
1. 檢索軟件包
2. 安裝軟件包
3. 升級軟件包
4. 最新軟件包的檢索
5. 限定到指定的發(fā)行套件
3. rpmfind的設(shè)置文件
4. 用rpmfind自動升級
5. 工作原理
6. 下載
7. 計劃
在給作者發(fā)送bug報告郵件之前請先升級rpmfind到最新版,謝謝合作。
rpmfind是什么?
總得來說,rpmfind是一個為你在rufus上尋找RPM軟件包的程序。
[譯注]rufus是作者D. Veillard 提供的服務(wù)器。
舉個例子, "rpmfind gimp" ,這個命令告訴你在電腦上安裝Gimp需要哪些軟件包,哪里可以找到它們,它們會占據(jù)多少硬盤空間(因此你也能計算出下載時間),同時為你取得那些軟件包。
rpmfind也為電腦上現(xiàn)有的軟件包提供查詢RPM數(shù)據(jù)庫服務(wù),它支持關(guān)鍵詞和正則表達(dá)式查詢。
rpmfind能運(yùn)行在一個特別的"upgrade"模式下,這樣可以使電腦的上的各種軟件包保持最新或者升級軟件包到發(fā)行套間的新版本。關(guān)于此種模式下操作的具體信息,請參考autoupgrade。
如何使用:
Rpmfind有許多種不同的模式,這里只對標(biāo)準(zhǔn)模式下的操作做具體說明
搜尋軟件包:
這種模式是根據(jù)關(guān)鍵字來檢索相關(guān)的軟件包。語法為"rpmfind --apropos regex" ,它會檢索上所有的軟件包,這些軟件包以名字和摘要說明為索引。
舉個例子,我曾聽說過一個類似Borland的編程工具,讓我們?nèi)フ宜?br>
$ rpmfind --apropos borland
1:
ftp:///linux/contrib/i38...-1.3-1.i386.rpmrhide : Rhide is a very nice IDE exactly like Borland‘s
$
看來只檢索到一個軟件包,理論上所有名字和摘要說明包含關(guān)鍵字的軟件包都會顯示出來。
安裝軟件包:
這是rpmfind的“默認(rèn)”模式,"rpmfind 軟件包的名字",rpmfind會根據(jù)系統(tǒng)的發(fā)行套件為你鎖定最合適的軟件包,同時也列出其他相關(guān)用來處理依存關(guān)系的軟件包。
舉例,讓我們在機(jī)器上來安裝一個名為"xbill"的游戲:
$ rpmfind xbill
Arch : i586, Os : Linux
Default distribution : Red Hat Software(Hurricane)
owning 249 of 338 installed packages
Get
http:////linux/RDF/resources/xbill.rdfGet
http:////linux/RDF/redha...-2.0-2.i386.rdfInstalling xbill will requires 183 KBytes
### To Transfer:
ftp:///linux/redhat/redh...-2.0-2.i386.rpmDo you want to download these files to /tmp [Y/n/a] ? : y
saving to /tmp/xbill-2.0-2.i386.rpm
$
安裝這個游戲只需要一個軟件包,它被存在"/tmp"目錄下。注意:rpmfind不需要root特權(quán),任何用戶都可運(yùn)行。但是安裝軟件包無論如何是需要root特權(quán)的(執(zhí)行"rpm -i /tmp/xbill-2.0-2.i386.rpm")。
升級軟件包
在“默認(rèn)”模式下,rpmfind不會嘗試著替代現(xiàn)有的軟件包,所以存在一個特別的“upgrade”模式用來更新陳舊的軟件包。同時它也會檢查依存關(guān)系并提出更新其它相關(guān)軟件包的建議:
$ rpmfind -q --upgrade balsa
[search for approx 30 seconds ... 28.8 Kbps PPP connection]
Installing balsa will requires 9574 KBytes
### To Transfer:
ftp:///linux/freshmeat/l....0.1-1.i386.rpmftp:///linux/redhat/redh....9.1-1.i386.rpmftp:///linux/redhat-labs...-3.0-2.i386.rpmftp:///linux/contrib/hur...-3.0-4.i386.rpmftp:///linux/redhat/redh...0.13-4.i386.rpmftp:///linux/redhat-labs...052414.i386.rpmftp:///linux/redhat-labs...052414.i386.rpmftp:///linux/redhat-labs...052414.i386.rpmftp:///linux/redhat-labs...052414.i386.rpmftp:///linux/redhat-labs...052416.i386.rpmDo you want to download these files to /tmp [Y/n/a] ? : n
$
"-q" 標(biāo)志用來減少rpmfind的冗余信息。
最新軟件包的檢索
rpmfind的最后一個模式是"latest",用來檢索最新的軟件包。這種模式下rpmfind不會給軟件包所屬發(fā)行套件或廠商優(yōu)先權(quán),它只會帶回最新的軟件包:
$ rpmfind -$ rpmfind -q --latest knews
Installing knews will require 668 KBytes
### To Transfer:
ftp:///linux/redhat/redha....96-1.i386.rpmftp:///linux/contrib/hurr...b.0-1.i386.rpmDo you want to download these files to /tmp [Y/n/a] ? : y
Download libpng-0.96-1.i386.rpm [Y/n/a] ? :y
transfering
ftp:///linux/redhat/redha....96-1.i386.rpmsaving to /tmp/libpng-0.96-1.i386.rpm
Download knews-1.0b.0-1.i386.rpm [Y/n/a] ? :y
transfering
ftp:///linux/contrib/hurr...b.0-1.i386.rpmsaving to /tmp/knews-1.0b.0-1.i386.rpm
$
這個選項(xiàng)可能導(dǎo)致對“標(biāo)準(zhǔn)發(fā)布”的修改,因此可能致使在用戶升級到更新的版本的時候出現(xiàn)問題。
限定到指定的發(fā)行套件
"--dist"選項(xiàng)可以使rpmfind按照所指定的發(fā)行套件取得相應(yīng)的軟件包:
$ rpmfind --dist redhat gpg
當(dāng)然也可以在[package]部分使用no_distrib標(biāo)志:
[packages]
no_distrib=rawhide
Rpmfind配置文件
rpmfind產(chǎn)生并維護(hù)一個個人配置文件,保存在"$HOME/.rpmfind"下。
這里有一些選項(xiàng),它們所代表的意義和默認(rèn)值是:
version
這由rpmfind維護(hù),用來檢查是否需要升級。
server
聯(lián)系指定的RDF服務(wù)器,現(xiàn)在rufus是主用的服務(wù)器,bu的新鏡像服務(wù)器也在運(yùn)行中。
prefix
定義RPM本地數(shù)據(jù)庫的存放位置,默認(rèn)在"/usr/local"下,除非RPM不是系統(tǒng)自帶的軟件包格式。
downloadDir
定義下載軟件包的存放位置,默認(rèn)是"/tmp"。
httpProxy
你所使用HTTP代理服務(wù)器的地址。
ftpProxy
你所使用FTP代理服務(wù)器的地址
verbose
設(shè)置冗余度,默認(rèn)是1,0比較安靜,1 有點(diǎn)煩人哦:-)
mode
默認(rèn)模式是檢索,如果你喜歡冒險的話,也可以通過命令行選擇"upgrade"和"lates"模式。
配置文件里列出了所有的選項(xiàng),并作了簡單的說明。
用rpmfind來自動升級
我建議選用最新的版本(至少要用1.5或其以上的版本)。
1. 選擇自動升級的來源,就是ftp的地址或者別的什么地址。
2. 編輯你的".rpmfind"文件,每一個來源添加一個autoupgradeURL, 像這樣:
autoupgradeURL=ftp:///linux/redhat/updates/6.2/i386
autoupgradeURL=ftp://myserver.org/pub/rpm-updates/i386/
3. 運(yùn)行 "rpmfind --autoupgrade"
4. 如果覺得滿意就可以添加到root的crontab中去。
如果使用crontab,推薦做以下幾件事:開啟"paranoid"選項(xiàng),在系統(tǒng)中配置gpg并且將發(fā)行套件密鑰添加到root的gpg鑰匙環(huán)中("gpg --import key")。
工作原理
rpm2html能輸出軟件包的相關(guān)信息,這些信息以RDF格式存儲在上。因而所有軟件包的說明及其相關(guān)信息都輸出在這些小RDF文件中。
當(dāng)用rpmfind查找軟件包時,rpmfind首先會查詢本地的RPM數(shù)據(jù)庫。當(dāng)本地沒有時,它才會向rufus上發(fā)送查詢相關(guān)RDF文件的請求。文件內(nèi)容經(jīng)過分析從軟件包提供的信息(廠商、版本、日期、等等.....)中提取到摘要說明。基于此,rpmfind根據(jù)適宜程度排列符合條件的軟件包。隨之,提取排列在第一位的軟件包及其所有信息包括依存關(guān)系(dependency)等。基于上面的信息,rpmfind通過從網(wǎng)上抓取軟件包來證實(shí)此軟件包所需要的依存關(guān)系及其相關(guān)的資源都可提供。
最后,rpmfind列出軟件包的清單和所需要的營盤空間。
如果rpmfind發(fā)現(xiàn)軟件包中的一個所需要的資源不能提供,或者需要對libc進(jìn)行升級,它就會放棄這個軟件包進(jìn)而選擇下一個。
下載
最新版位于
ftp:///pub/rpmfind,它也是RedHat like distributions的一部分。
計劃
許多事情要做的:
* 一個用戶界面,用戶可根據(jù)程序所提供的清單對其中的一些軟件包再次進(jìn)行選擇。
* 根據(jù)RPM的版本,發(fā)行和序列號來選擇軟件包及其依存關(guān)系,但這需要對rpm2html程序和RDF文件的功能進(jìn)行擴(kuò)充。(部分已完成)
* 一個可選的圖形界面。 (查看 gnorpm).
想現(xiàn)在使用rpmfind嗎?下載!