rpmfind : rpm2html的客户端工具

来源:百度文库 编辑:神马文学网 时间:2024/04/28 17:48:09
作者:Daniel Veillarddaniel@veillard.com 翻译:Carelezzcarelezz74@hotmail.com 翻译稿版本:0.01 2002/11/02
rpmfind : rpm2html的客户端工具
1. rpmfind是什么?
2. 如何使用
1. 检索软件包
2. 安装软件包
3. 升级软件包
4. 最新软件包的检索
5. 限定到指定的发行套件
3. rpmfind的设置文件
4. 用rpmfind自动升级
5. 工作原理
6. 下载
7. 计划
在给作者发送bug报告邮件之前请先升级rpmfind到最新版,谢谢合作。
rpmfind是什么?
总得来说,rpmfind是一个为你在rufus上寻找RPM软件包的程序。
[译注]rufus是作者D. Veillard 提供的服务器。
举个例子, "rpmfind gimp" ,这个命令告诉你在电脑上安装Gimp需要哪些软件包,哪里可以找到它们,它们会占据多少硬盘空间(因此你也能计算出下载时间),同时为你取得那些软件包。
rpmfind也为电脑上现有的软件包提供查询RPM数据库服务,它支持关键词和正则表达式查询。
rpmfind能运行在一个特别的"upgrade"模式下,这样可以使电脑的上的各种软件包保持最新或者升级软件包到发行套间的新版本。关于此种模式下操作的具体信息,请参考autoupgrade。
如何使用:
Rpmfind有许多种不同的模式,这里只对标准模式下的操作做具体说明
搜寻软件包:
这种模式是根据关键字来检索相关的软件包。语法为"rpmfind --apropos regex" ,它会检索rpmfind.net上所有的软件包,这些软件包以名字和摘要说明为索引。
举个例子,我曾听说过一个类似Borland的编程工具,让我们去找它:
$ rpmfind --apropos borland
1:ftp://rpmfind.net/linux/contrib/i38...-1.3-1.i386.rpm
rhide : Rhide is a very nice IDE exactly like Borland‘s
$
看来只检索到一个软件包,理论上所有名字和摘要说明包含关键字的软件包都会显示出来。
安装软件包:
这是rpmfind的“默认”模式,"rpmfind 软件包的名字",rpmfind会根据系统的发行套件为你锁定最合适的软件包,同时也列出其他相关用来处理依存关系的软件包。
举例,让我们在机器上来安装一个名为"xbill"的游戏:
$ rpmfind xbill
Arch : i586, Os : Linux
Default distribution : Red Hat Software(Hurricane)
owning 249 of 338 installed packages
Gethttp://rpmfind.net//linux/RDF/resources/xbill.rdf
Gethttp://rpmfind.net//linux/RDF/redha...-2.0-2.i386.rdf
Installing xbill will requires 183 KBytes
### To Transfer:
ftp://rpmfind.net/linux/redhat/redh...-2.0-2.i386.rpm
Do you want to download these files to /tmp [Y/n/a] ? : y
saving to /tmp/xbill-2.0-2.i386.rpm
$
安装这个游戏只需要一个软件包,它被存在"/tmp"目录下。注意:rpmfind不需要root特权,任何用户都可运行。但是安装软件包无论如何是需要root特权的(执行"rpm -i /tmp/xbill-2.0-2.i386.rpm")。
升级软件包
在“默认”模式下,rpmfind不会尝试着替代现有的软件包,所以存在一个特别的“upgrade”模式用来更新陈旧的软件包。同时它也会检查依存关系并提出更新其它相关软件包的建议:
$ rpmfind -q --upgrade balsa
[search for approx 30 seconds ... 28.8 Kbps PPP connection]
Installing balsa will requires 9574 KBytes
### To Transfer:
ftp://rpmfind.net/linux/freshmeat/l....0.1-1.i386.rpm
ftp://rpmfind.net/linux/redhat/redh....9.1-1.i386.rpm
ftp://rpmfind.net/linux/redhat-labs...-3.0-2.i386.rpm
ftp://rpmfind.net/linux/contrib/hur...-3.0-4.i386.rpm
ftp://rpmfind.net/linux/redhat/redh...0.13-4.i386.rpm
ftp://rpmfind.net/linux/redhat-labs...052414.i386.rpm
ftp://rpmfind.net/linux/redhat-labs...052414.i386.rpm
ftp://rpmfind.net/linux/redhat-labs...052414.i386.rpm
ftp://rpmfind.net/linux/redhat-labs...052414.i386.rpm
ftp://rpmfind.net/linux/redhat-labs...052416.i386.rpm
Do you want to download these files to /tmp [Y/n/a] ? : n
$
"-q" 标志用来减少rpmfind的冗余信息。
最新软件包的检索
rpmfind的最后一个模式是"latest",用来检索最新的软件包。这种模式下rpmfind不会给软件包所属发行套件或厂商优先权,它只会带回最新的软件包:
$ rpmfind -$ rpmfind -q --latest knews
Installing knews will require 668 KBytes
### To Transfer:
ftp://rpmfind.net/linux/redhat/redha....96-1.i386.rpm
ftp://rpmfind.net/linux/contrib/hurr...b.0-1.i386.rpm
Do you want to download these files to /tmp [Y/n/a] ? : y
Download libpng-0.96-1.i386.rpm [Y/n/a] ? :y
transferingftp://rpmfind.net/linux/redhat/redha....96-1.i386.rpm
saving to /tmp/libpng-0.96-1.i386.rpm
Download knews-1.0b.0-1.i386.rpm [Y/n/a] ? :y
transferingftp://rpmfind.net/linux/contrib/hurr...b.0-1.i386.rpm
saving to /tmp/knews-1.0b.0-1.i386.rpm
$
这个选项可能导致对“标准发布”的修改,因此可能致使在用户升级到更新的版本的时候出现问题。
限定到指定的发行套件
"--dist"选项可以使rpmfind按照所指定的发行套件取得相应的软件包:
$ rpmfind --dist redhat gpg
当然也可以在[package]部分使用no_distrib标志:
[packages]
no_distrib=rawhide
Rpmfind配置文件
rpmfind产生并维护一个个人配置文件,保存在"$HOME/.rpmfind"下。
这里有一些选项,它们所代表的意义和默认值是:
version
这由rpmfind维护,用来检查是否需要升级。
server
联系指定的RDF服务器,现在rufus是主用的服务器,bu的新镜像服务器也在运行中。
prefix
定义RPM本地数据库的存放位置,默认在"/usr/local"下,除非RPM不是系统自带的软件包格式。
downloadDir
定义下载软件包的存放位置,默认是"/tmp"。
httpProxy
你所使用HTTP代理服务器的地址。
ftpProxy
你所使用FTP代理服务器的地址
verbose
设置冗余度,默认是1,0比较安静,1 有点烦人哦:-)
mode
默认模式是检索,如果你喜欢冒险的话,也可以通过命令行选择"upgrade"和"lates"模式。
配置文件里列出了所有的选项,并作了简单的说明。
用rpmfind来自动升级
我建议选用最新的版本(至少要用1.5或其以上的版本)。
1. 选择自动升级的来源,就是ftp的地址或者别的什么地址。
2. 编辑你的".rpmfind"文件,每一个来源添加一个autoupgradeURL, 像这样:
autoupgradeURL=ftp://rpmfind.net/linux/redhat/updates/6.2/i386
autoupgradeURL=ftp://myserver.org/pub/rpm-updates/i386/
3. 运行 "rpmfind --autoupgrade"
4. 如果觉得满意就可以添加到root的crontab中去。
如果使用crontab,推荐做以下几件事:开启"paranoid"选项,在系统中配置gpg并且将发行套件密钥添加到root的gpg钥匙环中("gpg --import key")。
工作原理
rpm2html能输出软件包的相关信息,这些信息以RDF格式存储在rpmfind.net上。因而所有软件包的说明及其相关信息都输出在这些小RDF文件中。
当用rpmfind查找软件包时,rpmfind首先会查询本地的RPM数据库。当本地没有时,它才会向rufus上发送查询相关RDF文件的请求。文件内容经过分析从软件包提供的信息(厂商、版本、日期、等等.....)中提取到摘要说明。基于此,rpmfind根据适宜程度排列符合条件的软件包。随之,提取排列在第一位的软件包及其所有信息包括依存关系(dependency)等。基于上面的信息,rpmfind通过从网上抓取软件包来证实此软件包所需要的依存关系及其相关的资源都可提供。
最后,rpmfind列出软件包的清单和所需要的营盘空间。
如果rpmfind发现软件包中的一个所需要的资源不能提供,或者需要对libc进行升级,它就会放弃这个软件包进而选择下一个。
下载
最新版位于ftp://rpmfind.net/pub/rpmfind,它也是RedHat like distributions的一部分。
计划
许多事情要做的:
* 一个用户界面,用户可根据程序所提供的清单对其中的一些软件包再次进行选择。
* 根据RPM的版本,发行和序列号来选择软件包及其依存关系,但这需要对rpm2html程序和RDF文件的功能进行扩充。(部分已完成)
* 一个可选的图形界面。 (查看 gnorpm).
想现在使用rpmfind吗?下载!