我们先来了解一下怎样使用 rpm 命令安装 rpm 包。具体格式为:rpm -i <文件路径><文件名>。注意区分大小写,-i 参数就是让 rpm 命令执行安装后面列出的 rpm 包文件。现在我们用 Linux 版的 nero 来示范一下。
用红线圈起的位置是安装后给出的提示信息。在很多其它一些 rpm 包安装后是什么也没有的。如果是比较大的软件包安装需要一阵子,我们要是想看到安装进度该怎么做呢?我们需要另外两个参数,就是 -v 和 -h。-v 参数会显示 rpm 包的真实名称,需要注意很多情况下不是文件名。而且我们很有可能为了便于记忆而把下载的文件改名不是吗?-h 参数就是用来显示安装进度的。现在我们来实际操作一下。
那些“#”号就表示进度,当后面的的百分比数字走到 100% 时表示安装完成。而用红线圈起的字符就是这个 rpm 包的名称,是不是与文件名不一样呢?
我们继续了解一下如何更新,或者说升级 rpm 软件包。那就需要用到 -U 参数,这里仍然需要区分大小写。更新软件包大家应该都清楚,就是当同名的软件包有新版时可以升级对吧。但如果我们使用相同版本覆盖已安装的软件是不是也可以呢?特别是在已安装的软件损坏的情况下。其实我们如果用 -U 参数替代 -i 参数也完全可以。现在来看一下使用 -U 参数全新安装 rpm 包是什么情况吧。
接着我们看看在已安装相同 rpm 包的情况下使用 -U 参数安装会出现什么。
我们刚才已经在“红旗 5.0”中安装了 Linux 版的 nero 软件,是不是要看看系统中倒底有没有安装这个 rpm 包呢?这就要用到 rpm 命令的查询功能,-q 参数。我们刚才安装 Linux 版的 nero 时使用 -v 参数知道了这个 rpm 的名称是 nerolinux,现在请尝试使用命令:rpm -q nerolinux。
哇,有了有了。它还在“开始”-->“设置”菜单中建立了快捷方式(它在 Fedora Core3 系统中也会建立快捷方式)。
但是还是有很多 rpm 包安装的软件没有快捷方式。我们怎么才能知道它们被安装到哪里了呢?。我们在 -q 参数后面跟一个 -l 参数可以列出 nerolinux 包中的文件的安装位置。
终端很快就返回了结果,真是不少啊!喔,那位朋友说如果我不记得 rpm 包的真实名称该怎么办呢?-q 还有一个辅助的参数 a 可以返回系统当前所有已安装的 rpm 包。请尝试在终端中输入命令:rpm -qa。
这位朋友又说了,这些也太多了,得找半天哪。有没有快点的办法。这个嘛!也许您总还记得一两个字母吧,比如您还记得它第一个字母是 n。rpm 的查询功能支持通配符,我们试试看在终端中键入命令:rpm -qa n*。是否能缩小查询范围,获得所有第一个字母是 n 的 rpm 软件包。
看看结果出来了。我们确实只获得了第一个字母是 n 的 rpm 软件包。
接着我们有时会发现某个软件运行时不太正常了,是不是损坏了呢?这时 rpm 命令的校验参数 -V 就非常有用了。同时也有其它参数用来辅助 -V 参数。如果一切校验正常不会产生任何输出,如果有不同的地方就会显示。输出格式是长度为 8 的字符串。c 用来指配置文件,接着是文件名。每一个字符用来表示文件与 rpm 数据库中一种属性的验证结果。“.”表示通过,而以下字符表示相关验证失败。
5:MD5 校验码
S:文件尺寸
L:符号链
T:文件修改日期
D:设备
U:用户
G:用户组
M:模式 e (包括文件权限和类型)
可以想像一下,如果 Windows 系统中我们也能获得这些文件信息。就很容易找到被恶意篡改的文件,从而捕获非法程序。
如果要验证所有已安装了软件包可以在 -V 参数后加 -a 参数。但通常不必要,因为可能需要花费相当长的时间。命令如下:rpm -Va
另外我们还可以根据 rpm 包文件来验证某个 rpm 安装。请尝试使用命令:rpm -Vp <文件路径><文件名>。我们还是使用 Linux 版的 nero 为例吧。请尝试输入命令:rpm -Vp /mycomputer/WinE/LinuxSoft/多媒体/Nero刻录软件/nerolinux-2.0.0.2-x86.rpm。请朋友们把后面的文件路径和名称替换成与自己实际情况相符的。
嗯!什么输出也没有,看起来一切正常嘛!最后我们要学习如何卸载 rpm 软件包。其实很简单,请尝试输入命令:rpm -e nerolinux。nerolinux 是什么?天哪,怎么就忘了,我们刚才安装 Linux 版的 nero 软件时用 -v 参数获得的 rpm 包文件名呀!而 -e 参数用来让 rpm 命令卸载已安装的 rpm 包。
已经卸载完成了。如果在执行卸载某些 rpm 软件包的命令后没有出现任何提示,直接出出提示符。那也证明卸载操作成功完成。现在再次输入命令:rpm -qa n*,是不是已经找不到 Linux 版的 nero 软件包啦!
最后要说明的是,我们在查询时看到 nerolinux 包的名称是 nerolinux-2.0.0.2-1。所以我们在命令中输入:rpm -e nerolinux-2.0.0.2-1 同样能成功执行。
514737299 于 2010-04-09 15:15:21发表:
顶,确实不错,辛苦了
aperfume 于 2010-04-09 13:00:10发表:
谢谢啦
lilesi456 于 2009-10-07 20:08:30发表:
牛贴
slayerzlvc 于 2009-10-06 20:04:57发表:
把 rpm 命令的基本用法全罗列出来了
zzy870720z 于 2009-10-06 15:52:52发表:
不错
xiazhouquan 于 2009-09-08 11:51:16发表:
分享了
于 2006-07-26 17:23:45发表:
error: can't create transaction lock on /var/lib/rpm/__db.000
那位大哥指导一下小弟阿
tongxiaokun 于 2006-07-24 09:06:55发表:
good
mxwlzm_5635 于 2006-07-16 16:04:49发表:
好贴,顶!
15688 于 2006-07-13 20:58:13发表:
很详细,支持