Linux基础RPM软件包管理
2012-11-01 00:05
225 查看
一、RPM 概述
RPM 是一个开放的软件包管理系统,最初的全称是 Red Hat Package Manager。它工作于 Red Hat Linux 以及其它 Linux 系统,成为了 Linux 中公认的软件包管理标准。红帽子软件公司鼓励其他厂商来了解 RPM 并在自己的产品中使用它。RPM 的发布基于 GPL 协议。随着 RPM 在各种发行版本的广泛使用,如今 RPM 的全称是 RPM Package Manager。RPM 由 RPM
社区负责维护,其官方网站:http://www.rpm.org
二、为什么使用 RPM
使用 RPM 最大的好处在于它提供快速之安装,减少编译安装之侦错困扰。对于最终用户来说,RPM 所提供的众多功能使维护系统要比以往容易的多。安装、卸载和升级 RPM 软件包均只需一条命令即可完成,所有烦琐的细节问题无须您费心。RPM 维护一个所有已安装的软件包和文件的数据库,可以让您进行功能强大的软件包查询和验证工作。在软件包升级过程中,RPM 会对配置文件进行特别处理,因此您绝对不会丢失以往的定制信息——这对于直接使用 .tar.gz
文件是不可能的。对于程序员,RPM 可以让您连同软件的源代码打包成源代码和二进制软件包供最终用户使用。这个过程十分简单,整个过程由一个主文件和可能的补丁程序组成。RPM 在软件的新版本发布时,这种“原始”源代码,补丁程序和软件生成指令的清晰描述简化了软件包的维护工作。
三、RPM 的功能
简言之,RPM 具有如下五大功能:
1、安装——将软件从包中解出来,并且安装到硬盘。
2、卸载——将软件从硬盘清除。
3、升级——替换软件的旧版本。
4、查询——查询软件包的信息。
5、验证——检验系统中的软件与包中软件的区别。
四、RPM 包的名称格式
RPM 包的名称有其特有的格式,如某软件的RPM包名称由如下部分组成:name-version.type.rpm,其中:
例如:
bind-9.2.1-16.i386.rpm:是bind(9.2.1-16)的 Intel 386平台编译版本包;
bind-9.2.1-16.sparc.rpm:是bind(9.2.1-16)的 sparc 平台编译版本包;
bind-9.2.1-16.alpha.rpm:是bind(9.2.1-16)的 alpha 平台编译版本包;
bind-9.2.1-16.src.rpm:是bind(9.2.1-16)的源代码版本包;
因此,看到一个 RPM 包的文件名之后就可以获得该软件包的大致信息了。
五、常用的 RPM 包命令
在 CentOS 中升级和安装系统通常使用 yum 命令,因为它可以良好的解决包的依赖性问题,即自动安装(处理)依赖的其他软件包。但是 rpm 命令还是在某些情况下用得上,比如,查询包信息,安装或卸载一个不在 CentOS 软件库中的 .rpm 包等。
需要注意的是:
1、在安装(升级)时,还可以使用 -vh 参数,其中 v 表示在安装过程中将显示较详细的信息,h 表示显示水平进度条;
2、在使用 rpm -qa 命令时,还可以使用 | more 或 | grep 进行过滤;
3、所有的 <.rpm file nam e > 既可以是本地文件,也可以是远程文件;
4、校验软件包将检查软件包中的所有文件是否与系统中所安装的一致性。包括校验码文件大小,存取权限和属主属性都将根据数据库进行校验。该操作可在用户安装了新程序以后怀疑某些文件遭到破坏时使用。
六、RPM 安装实例
以安装VSFTP为例,演示如何通过 RPM 包安装软件。
1、从本地软件包安装 VSFTP(注:RPM 路径和文件名仅用于演示,实际安装时请根据实际情况填写 )
VSFTP 软件包情况
如果校验一切正常,将没有输出,反之则输出不一致结果,格式为:XXXXXXXX 文件名。
字段1由八个字符组成,每个字符指明该文件与 RPM 数据库中一致或不一致的地方,单个点(.)说明没有异常,具体含义如下:
关于 RPM 软件包的使用暂时就这么多啦。
RPM 是一个开放的软件包管理系统,最初的全称是 Red Hat Package Manager。它工作于 Red Hat Linux 以及其它 Linux 系统,成为了 Linux 中公认的软件包管理标准。红帽子软件公司鼓励其他厂商来了解 RPM 并在自己的产品中使用它。RPM 的发布基于 GPL 协议。随着 RPM 在各种发行版本的广泛使用,如今 RPM 的全称是 RPM Package Manager。RPM 由 RPM
社区负责维护,其官方网站:http://www.rpm.org
二、为什么使用 RPM
使用 RPM 最大的好处在于它提供快速之安装,减少编译安装之侦错困扰。对于最终用户来说,RPM 所提供的众多功能使维护系统要比以往容易的多。安装、卸载和升级 RPM 软件包均只需一条命令即可完成,所有烦琐的细节问题无须您费心。RPM 维护一个所有已安装的软件包和文件的数据库,可以让您进行功能强大的软件包查询和验证工作。在软件包升级过程中,RPM 会对配置文件进行特别处理,因此您绝对不会丢失以往的定制信息——这对于直接使用 .tar.gz
文件是不可能的。对于程序员,RPM 可以让您连同软件的源代码打包成源代码和二进制软件包供最终用户使用。这个过程十分简单,整个过程由一个主文件和可能的补丁程序组成。RPM 在软件的新版本发布时,这种“原始”源代码,补丁程序和软件生成指令的清晰描述简化了软件包的维护工作。
三、RPM 的功能
简言之,RPM 具有如下五大功能:
1、安装——将软件从包中解出来,并且安装到硬盘。
2、卸载——将软件从硬盘清除。
3、升级——替换软件的旧版本。
4、查询——查询软件包的信息。
5、验证——检验系统中的软件与包中软件的区别。
四、RPM 包的名称格式
RPM 包的名称有其特有的格式,如某软件的RPM包名称由如下部分组成:name-version.type.rpm,其中:
name | 软件的名称 |
---|---|
version | 软件的版本号 |
type | 包的类型 |
i[3456]86 | 表示在 Intel x86 计算机平台上编译的 |
sparc | 表示在sparc计算机平台上编译的 |
alpha | 表示在alpha计算机平台上编译的 |
src | 表示软件源代码 |
rpm | 为文件扩展名 |
bind-9.2.1-16.i386.rpm:是bind(9.2.1-16)的 Intel 386平台编译版本包;
bind-9.2.1-16.sparc.rpm:是bind(9.2.1-16)的 sparc 平台编译版本包;
bind-9.2.1-16.alpha.rpm:是bind(9.2.1-16)的 alpha 平台编译版本包;
bind-9.2.1-16.src.rpm:是bind(9.2.1-16)的源代码版本包;
因此,看到一个 RPM 包的文件名之后就可以获得该软件包的大致信息了。
五、常用的 RPM 包命令
在 CentOS 中升级和安装系统通常使用 yum 命令,因为它可以良好的解决包的依赖性问题,即自动安装(处理)依赖的其他软件包。但是 rpm 命令还是在某些情况下用得上,比如,查询包信息,安装或卸载一个不在 CentOS 软件库中的 .rpm 包等。
命令 | 作用 |
---|---|
rpm -i [.rpm file name] | 安装指定的 .rpm 文件 |
rpm -U [.rpm file name] | 用指定的.rpm文件升级同名包 |
rpm -e [package-name] | 删除指定的软件包 |
rpm -q [package-name] | 查询指定的软件包在系统中是否安装 |
rpm -qa | 查询系统中安装的所有RPM软件包 |
rpm -qf [/path/to/file] | 查询系统中指定文件所属的软件包 |
rpm -qi [package-name] | 查询一个已安装软件包的描述信息 |
rpm -ql [package-name] | 查询一个已安装软件包里所包含的文件 |
rpm -qc [package-name] | 查看一个已安装软件包的配置文件位置 |
rpm -qpi [.rpm file name] | 查询一个未安装的 RPM文件的描述信息 |
rpm -qpl [.rpm file name] | 查询一个未安装的 RPM文件里所包含的文件 |
rpm -qpc [.rpm file name] | 查看一个未安装的 RPM文件的配置文件位置 |
rpm -qpd [.rpm file name] | 查看一个未安装的 RPM文件的文档安装位置 |
rpm -qpR [.rpm file name] | 查询一个未安装的 RPM文件的最低依赖要求 |
rpm -V [package-name] | 校验指定的软件包 |
rpm -V [/path/to/file] | 校验包含指定文件的软件包 |
rpm -Vp [.rpm file name] | 校验指定的未安装的 RPM文件 |
rpm -Va | 校验所有已安装的软件包 |
rpm --rebuilddb | 重新创建系统的RPM数据库,用于不能安装和查询的情况 |
rpm --import | 导入指定的签名文件 |
rpm -Kv --nosignature [.rpm file name] | 检查指定的RPM文件是否已损坏或被恶意篡改(验证包的MD5校验和) |
rpm -K [.rpm file name] | 检查指定RPM文件的GnuPG签名 |
rpm -qd [package-name] | 查看一个已安装软件包的文档安装位置 |
rpm -qR [package-name] | 查询一个已安装软件包的最低依赖要求 |
1、在安装(升级)时,还可以使用 -vh 参数,其中 v 表示在安装过程中将显示较详细的信息,h 表示显示水平进度条;
2、在使用 rpm -qa 命令时,还可以使用 | more 或 | grep 进行过滤;
3、所有的 <.rpm file nam e > 既可以是本地文件,也可以是远程文件;
4、校验软件包将检查软件包中的所有文件是否与系统中所安装的一致性。包括校验码文件大小,存取权限和属主属性都将根据数据库进行校验。该操作可在用户安装了新程序以后怀疑某些文件遭到破坏时使用。
六、RPM 安装实例
以安装VSFTP为例,演示如何通过 RPM 包安装软件。
1、从本地软件包安装 VSFTP(注:RPM 路径和文件名仅用于演示,实际安装时请根据实际情况填写 )
# rpm -ivh /media/CentOS_5.5_Final/CentOS/vsftpd-2.0.5-16.el5_4.1.i386.rpm2、从本地文件升级 VSFTP
# rpm -Uvh vsftpd-2.0.5-16.el5_4.1.i386.rpm3、卸载 VSFTP
# rpm -e vsftpd4、查询
VSFTP 软件包情况
// 查询 vsftpd 软件包在系统中是否安装 $ rpm –q vsftpd // 查询系统中已安装的 vsftpd 软件包的描述信息 $ rpm –qi vsftpd // 查询系统中已安装的 vsftpd 软件包里所包含的文件 $ rpm –ql vsftpd // 查询系统中文件 /etc/vsftpd/vsftpd.conf 所属的软件包 $ rpm –qf /etc/vsftpd/vsftpd.conf // 查询 vsftpd-2.0.5-16.el5_4.1.i386.rpm 包文件中的信息 $ rpm –qp vsftpd-2.0.5-16.el5_4.1.i386.rpm // 查询系统中已经安装的所有包含名字vsftpd的软件包 $ rpm –qa | grep vsftpd // 查询 vsftpd 包的最低依赖要求 $ rpm -qR vsftpd5、验证软件包
// 验证 vsftpd 软件包 # rpm –V vsftpd // 验证包含文件 /etc/passwd 的软件包 # rpm –Vf /etc/passwd // 验证 vsftpd-2.0.5-16.el5_4.1.i386.rpm 包文件 # rpm –Vp vsftpd-2.0.5-16.el5_4.1.i386.rpm // 验证所有已安装的软件包 # rpm –Va6、验证软件包时返回的结果
如果校验一切正常,将没有输出,反之则输出不一致结果,格式为:XXXXXXXX 文件名。
字段1由八个字符组成,每个字符指明该文件与 RPM 数据库中一致或不一致的地方,单个点(.)说明没有异常,具体含义如下:
5 | 校验和 | S | 文件大小 |
---|---|---|---|
L | 符合连接 | T | 文件修改时间 |
D | 设备 | U | 用户 |
G | 组 | M | 文件模式 |
? | 文件不可读 |
相关文章推荐
- linux入门基础——linux软件管理RPM
- Linux基础之软件管理RPM
- Linux基础3(用户/组管理,rpm,yum,源码安装软件)
- linux入门基础——linux软件管理RPM
- Linux 基础教程 34-软件包管理-RPM
- Linux基础管理——软件包管理:rpm,yum高级使用方法(史上最全,没有之一)
- linux初学(二十)之linux软件管理基础之RPM软件包管理
- linux使用RPM来管理软件包
- Linux软件管理之RPM
- Linux学习之软件包管理--rpm命令管理
- Linux 基础笔记软件包管理
- linux软件包管理-rpm
- Linux: 软件包管理之rpm与yum [转]
- Linux的软件包管理工具rpm和yum
- Linux软件包管理{rpm|yum|源码包}2015082901
- linux软件安装管理与安装RPM时的挂载的概念
- 20、linux软件管理之rpm
- Linux常用命令(24)之RPM软件包管理
- Linux下的rpm软件管理(管理软件的卸载、安装、更新)
- Linux系列-RPM软件包管理、YUM包管理