巨浪海滩第11天困难:精通RPM之杂项篇-2

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 07:17:23
一、数据库维护选项
1. ——initdb :
本选项用于创建并初始化RPM数据库。如果默认目录下(/var/lib/rpm)已存在RPM数据库,则原有数据库予以保存,RPM并不破坏,以防万一。如果没有数据库文件,则RPM创建并初始化这些文件。
例1. 本例先列出RPM默认的数据库目录下的文件,然后运行初始化命令(initdb),最后再列一下同一目录下的文件,用户可以比较一下输出结果。

注: 通过比较可以看出,RPM对已有的数据库并未进行初始化,数据库文件没有变化。
例2. 本例通过创建一个新的目录并把它作为RPM数据库的目录,进而新建RPM数据库的所有文件。

注: 用mkdir建立目录时采用-p选项表明,如果父目录不存在则建立父目录。RPM创建数据库时使用——root选项,将/usr/zhsoft目录设定为根目录,从而在/usr/zhsoft/var/lib/rpm目录创建RPM数据库文件。当然,也可使用——dbpath选项设定创建RPM数据库的目录,效果一样。从上看出,RPM创建了8个数据库文件,其中:conflictsindex.rpm是冲突索引文件,fileindex.rpm是文件索引文件,groupindex.rpm是类别索引文件,nameindex.rpm是软件名索引文件,packages.rpm是已安装的软件包数据文件,providesindex.rpm是软件包提供的功能索引文件,requireby.rpm是功能依赖文件,triggerindex.rpm是触发索引文件。
2. ——rebuilddb :
本选项用于重组RPM数据库。一般情况下不需重组数据库,仅当用RPM安装或升级软件时提示"free list corrupt (42) - contact rpm-list@redhat.com",这说明RPM数据库索引出现故障了,重组一下数据库应该可以解决问题。
重组实例:
# rpm ——rebuilddb -vv
D: rebuilding database in rootdir /
D: creating directory: /var/lib/rpmrebuilddb.690
D: opening old database
D: opening database mode 0x0 in //var/lib/rpm/
D: opening new database
D: opening database mode 0x42 in /var/lib/rpmrebuilddb.690/
#
注: 重组时选用-vv选项以得知RPM具体在干些什么。从上例看出,重组过程中,RPM利用临时目录,将老数据库中数据倒出来,存储到新的数据库中,索引因而得以重建。并且重组过程中RPM并没有报错,说明重组是成功的。
二、属性重置选项
1. ——setperms :
此选项的作用是根据查询出的RPM数据库里的包文件属性,重新设置一下文件权限,恢复其本来的权限。
此选项的用法是:
rpm ——setperms [-afpg] [软件标识1或包裹文件1] [软件标识2或包裹文件2]...
注: []所括为可选项,-a选项用于重新设置所有已安装的软件包的文件权限,-f选项用于重新设置拥有指定文件的已安装软件包的文件权限,-p选项用于重新设置与指定包裹文件中的文件同名的已在系统安装的文件的权限,-g选项用于重新设置所有已安装的属于指定类别的软件包的文件的权限。
# rpm ——setperms -f /bin/sh
#
注:本例重新设置拥有/bin/sh文件的软件包内各文件的权限。
2. ——setugids :
此选项根据查询出来的RPM数据库里的文件属性,重新设置一下文件的属主与属组,恢复其本来的属主与属组。
此选项的用法是:
rpm ——setugids [-afpg] [软件标识1或包裹文件1] [软件标识2或包裹文件2]...
注:[]所括为可选项,-a,-f,-p,-g四个选项的作用同上面的解释,恕不赘述。
本例重置属于"应用/编辑器"类(Applications/Editors)的软件包内各文件的属主与属组。
# rpm ——setugids -g Applications/Editors
#
三、其它选项
1. ——showrc :
本选项用以显示当前RPM使用的资源配置的内容,包括RPM环境变量及其值,CPU体系兼容信息,操作系统信息和各种宏及其值等等。

注:例中选显示体系与操作系统信息,接着显示宏及其值(RPMRC VALUES),省略了不少输出(以......表示)。
2. ——querytags :
用此选项可输出RPM定制查询时可用的所有功能标签。
# rpm ——querytags
NAME
VERSION
RELEASE
EPOCH
SERIAL
SUMMARY
DESCRIPTION
BUILDTIME
BUILDHOST
INSTALLTIME
......
#
3. ——version :
用此选项可输出当前RPM的版本信息。
4. ——help :
用此选项可输出RPM的帮助信息。LINUX系统中的许多命令都有约定,用——version选项输出版本号,用——help选项以输出帮助信息,这种约定很好,RPM也加以遵循。