rpm程序包及其管理
一、RPM 介绍:
RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
RPM的命名规范:
例如:zip-3.0-1.el6.x86_64.rpm
其中zip就是我们的软件名字,3.0-1是该软件的版本号,el6.x86_64这两个部分是指该rpm包的运行平台的操作系统版本。例如el6就表示是针对于RHEL6的发现版本,我们使用的是什么版本的Linux操作系统,我们就要去下载对应的rpm版本,x86_64表示是运行在64位上的系统。
二、RPM软件包管理方法介绍:
安装:
rpm {-i|--install} [install-options] PACKAGE_FILE1...
# rpm -i zip-3.0-1.el6.x86_64.rpm 安装软件包;
-i 或者 --install : 安装软件包
-h 或 --hash : 以# 来表示安装进度;
-v 或 --verbose: 显示安装过程中的详细信息;
-vv:更详细的安装信息;
-vvv: 更更详细的安装信息;
安装时最常用的组合:-ivh 安装时候显示详细信息,并显示安装进度;
卸载: 移除已经安装的程序包;
简单的使用格式:rpm -e PACKAGE_NAME...
--test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等;
测试安装,并不是真正的安装;
--nodeps: 忽略依赖关系;
--allmatches:如果一个程序包同时安装多个版本,则此选项一次全部卸载;
程序包之间存在依赖关系;
忽略依赖关系;副作用,能安装成功,但未必能成功运行:
--nodeps:
覆盖安装: --replacepkgs
强制安装:--force
Same as using --replacepkgs, --replacefiles, and --oldpackage.
--oldpackage 降级到旧版本;
--relocate 重新定义安装位置
--replacefiles 允许覆盖原有的文件
升级软件包:
-U 或 --upgrade :升级或安装,如果有原来的安装文件,就升级;如果原来没有安装文件,就进行安装;
格式:rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
-F 或 --freshen :只能升级用.如果不存在安装包,就不升级,也不安装;
格式:rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
组合使用的方法:
-Uvh , -Fvh
# rpm -Uvh --oldpackage zsh-4.3.10-7.e16.x86.x86_64.rpm
注意:如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置文件,而是把新版本的配置文件重命名(加后缀.rpmnew) 后保存;
查询:
rpm {-q|--query} [select-options] [query-options]
查询包是否已经安装: rpm -q PACKAGE_NAME...
查询已经安装的所有包:rpm -qa
查询某个文件是由那个安装生成的;
rpm -qf 文件名的路径
查询尚未安装的软件包文件的相关信息:
rpm -qpi PACKAGE_FILE 查看软件包的帮助信息;
rpm -qpl PACKAGE_FILE 查看软件包生成的那些文件包;
rpm -qpc PACKAGE_FILE查看软件包生成的配置文件;
查询软件包的简要说明:
rpm -qi PACKAGE_NAME
查询软件包安装生成的文件列表:
rpm -ql PACKAGE_NAME 查询只要指定包的名子就可以了,
查询软件包安装安装完成后生成的所有配置文件:
rpm -qc PACKAGE_NAME
查询软件包安装完成后生成的所有帮助文件:
rpm -qd PACKAGE_NAME专门查找帮助信息用的;
查看软件包制作随版本变化的changelog信息:
rpm -q --changelog PACKAGE_NAME
查询软件包提供的功能;
rpm -q --provides PACKAGE_NAME
查询软件包安装或卸载执行的脚本;
rpm -q --scripts PACKAGE_NAME
RPM软件验证命令:
校验:
查询包安装之后生成的文件是否发生了改变;
常见用法: rpm -V PACKAGE_NAME
如果没有出现任何错误,就表示该软件是完整的,没有被修改。
验证其光盘中程包序的来源及完整性;
rpm --import /path/to/RPM-GPG-KEY-FILE
例如:# rpm --import RPM-GOG-KEY-CentOS6
验证: rpm {-K|--checksig} PACKAGE_FILE
--nosignature:不检查来源合法性
--nodigest:不检查完整性
rpm管理器数据库:/var/lib/rpm
重建数据库:
rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY]
--initdb:初始化数据库,即数据库完全不存在,即新建之;
--rebuilddb:无论当前数据库存在与否,都会直接重建此库;
注:这是本人的学习笔记,如有不足请大家多多包涵.
本文出自 “我爱linux” 博客,请务必保留此出处http://sailove.blog.51cto.com/3215562/1631002
原文地址:http://sailove.blog.51cto.com/3215562/1631002