Linux 下 rpm程序包命令介绍及使用方法

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  安装时候显示详细信息,并显示安装进度;

 

     Linux 下 rpm程序包命令介绍及使用方法

 

卸载: 移除已经安装的程序包;简单的使用格式:rpm -e PACKAGE_NAME...

 

        Linux 下 rpm程序包命令介绍及使用方法

 

--test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等;

 

测试安装,并不是真正的安装;

   Linux 下 rpm程序包命令介绍及使用方法

 

--nodeps: 忽略依赖关系;

--allmatches:如果一个程序包同时安装多个版本,则此选项一次全部卸载;

 

 

程序包之间存在依赖关系;

忽略依赖关系;副作用,能安装成功,但未必能成功运行:

 

--nodeps:

Linux 下 rpm程序包命令介绍及使用方法

 

覆盖安装: --replacepkgs

Linux 下 rpm程序包命令介绍及使用方法

 

 

强制安装:--force

Same as using --replacepkgs, --replacefiles, and --oldpackage.

--oldpackage  降级到旧版本;

--relocate  重新定义安装位置

--replacefiles  允许覆盖原有的文件

 

升级软件包:

-U 或 --upgrade :升级或安装,如果有原来的安装文件,就升级;如果原来没有安装文件,就进行安装;

 

格式:rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

Linux 下 rpm程序包命令介绍及使用方法

 

-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...

Linux 下 rpm程序包命令介绍及使用方法

 

查询已经安装的所有包:rpm  -qa

Linux 下 rpm程序包命令介绍及使用方法

 

 

查询某个文件是由那个安装生成的; 

 

rpm -qf 文件名的路径

Linux 下 rpm程序包命令介绍及使用方法

 

查询尚未安装的软件包文件的相关信息:

 

查看软件包的帮助信息: rpm -qpi  PACKAGE_FILE   

 

Linux 下 rpm程序包命令介绍及使用方法

 

查看软件包生成的那些文件包:rpm -qpl  PACKAGE_FILE 

Linux 下 rpm程序包命令介绍及使用方法

 

 

查看软件包生成的配置文件: rpm -qpc  PACKAGE_FILE

 

Linux 下 rpm程序包命令介绍及使用方法

 

 

   查询软件包的简要说明: rpm -qi  PACKAGE_NAME

 

Linux 下 rpm程序包命令介绍及使用方法

 

 

 

 查询软件包安装生成的文件列表:rpm -ql PACKAGE_NAME 查询只要指定包的名子就可以了,

 

Linux 下 rpm程序包命令介绍及使用方法

 

 

 查询软件包安装安装完成后生成的所有配置文件:rpm -qc  PACKAGE_NAME

 

Linux 下 rpm程序包命令介绍及使用方法

 

 

查询软件包安装完成后生成的所有帮助文件:rpm -qd  PACKAGE_NAME 专门查找帮助信息用的;

 

Linux 下 rpm程序包命令介绍及使用方法

 

 

查看软件包制作随版本变化的changelog信息: rpm -q --changelog  PACKAGE_NAME

 

Linux 下 rpm程序包命令介绍及使用方法

 

 

查询软件包提供的功能:rpm -q --provides PACKAGE_NAME

 

 

查询软件包安装或卸载执行的脚本: rpm -q --scripts  PACKAGE_NAME

 

 

 

 

RPM软件验证命令:

    校验:

    查询包安装之后生成的文件是否发生了改变;

 

常见用法: rpm -V PACKAGE_NAME

    Linux 下 rpm程序包命令介绍及使用方法

     如果没有出现任何错误,就表示该软件是完整的,没有被修改。

    

 

    验证其光盘中程包序的来源及完整性: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:无论当前数据库存在与否,都会直接重建此库;