您的位置:首页 > 产品设计

RPM是一个文件包管理

2015-07-13 22:57 183 查看
RPM是一个文件包管理程序,它是Linux现在默认的软件包管理器,全称是Redhat Package Manager,缩写为RPM,由Redhat(红帽公司)最先发布,现在基本上所有的Linux以及部分Unix都使用它作为包管理程序。一、软件包的安装安装程序包: rpm [option] /path/to/package_file -i: 表示安装参数(install) -v: 表示打印安装过程的详细信息(verbose) -vv: -vvv: -h: 表示在安装包解压过程 组合选项:-ivh你可以使用-test选项来模拟或者测试一个安装过程,使用该选项使得管理工具并不真正安装该包,仅仅是检查并报告可能发生的冲突。具体命令可以表示如下:rpm -ivh --test package.rpm 如果依赖于其它包: 1、解决依赖关系 2、忽略依赖关系 能安装上,但有可能无法运行; --nodeps --replacepkgs: 重新安装 如果原有配置文件作了修改,很有可能不执行替换,而是将应该安装生成的配置文件重命名为 .rpmnew二、软件包的移除如果希望从系统中移除一个已存在的软件包,可以使用如下命令:rpm -e package.rpm,这里,选项-e表示移除参数(erase)为了安全起见,在移除一个软件包之前,你可以模拟移除过程,具体的命令如下:rpm -e --test package,这里,--test选项表示并不真正移除任何东西,仅仅是测试一下。同样你可以在移除软件包之前对其进行备份,以便以后进行恢复。具体命令如下:rpm -e --repackage package三、软件包的查询rpm -q package,这里选项-q表示查询参数(query)。在指定包时你可以使用软件包的全名,包括版本和发行号。查询操作:1、查询某包是否安装 rpm -q package_name...2、查询所有已经安装的包 rpm -qa 按条件过滤:rpm -qa | grep 'PATTERN'3、查询包的描述信息rpm -qipackage_name4、查询某包安装生成了哪些文件rpm -ql package_name(1) 查询某包安装生成了哪些配置文件 rpm -qc package_name(2) 查询某包安装生成了哪些帮助文件 rpm -qd package_name(3) 查询程序包的相关脚本rpm -q --scriptspackage_name 脚本有四类: preinstall:安装前脚本 postinstall: 安装后脚本 preuninstall: 卸载前脚本 postuninstall: 卸载后脚本5、查询某文件是由哪个包安装生成的rpm -qf/path/to/some_file6、对尚未安装的包执行查询rpm [option]/path/to/package_file -qpi -qpl -qpc -qpd四、升级程序包: 新版本替换老版本 rpm [option] /path/to/package_file 1、升级或安装 -Uvh 2、纯升级 -Fvh X --> Y-2.2.1 Y-2.2.3 升级后的版本冲突等; --force: 强制升级注意:不应该对内核执行升级操作,而是安装,系统允许多内核并存. 五、校验 用于检查包安装生成的文件属性是否发生变化 rpm -V package_name S file Size differs M Mode differs (includes permissions and filetype) 5 digest (formerly MD5 sum)differsD Device major/minor numbermismatchL readLink(2) path mismatchU User ownership differs G Group ownership differsT mTime differsP caPabilities differ 六、数据库重建: 数据库目录:/var/lib/rpmrpm --initdb:初始化如果事先没有库,会新建一个;如果有,则不新建; rpm --rebuilddb: 重建 直接重建,覆盖原有的数据库 总结起来,rpm命名常用的选项如下:--version:打印正在使用的rpm的版本号;

--quiet:在操作过程中打印尽可能少的信息,通常情况下仅包含错误信息;

-v:在操作过程中打印详细信息;

-h:在包解压过程中打印50个hash标记;

--odeps:不进行依赖性检查;

--oldpackage:允许一个旧版本的包来替换现存新版本的包;

--prefix NEWPATH:对安装路径进行重新定位;

--repackage:在移除文件前对其重新打包;

--test:仅对操作进行测试并报告结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息