红帽RHCE之软件包与RPM

简介: 红帽RHCE之软件包与RPM

软件包与RPM:

RPM软件包管理器最先由红帽开发,该程序提供了一种标准的方式来打包软件进行分发与使用,
从归档提取到文件系统的软件(源代码安装)相比,采用RPM软件包形式管理软件要简单得多。
管理员可以跟踪软件包所安装的文件。已安装软件包的信息存储在本地RPM数据库中。

RPM软件包文件名由四个元素组成:name-version-release.architecture

1. NAME:描述软件名
2. VERSION:原始软件版本号
3. RELEASE:基于该版本的软件包的发行版号,由软件打包商设置,不一定是原始
软件开发商。
4. ARCH:编译软件包的CPU处理器架构,noarch表示不限定架构。

基于yum安装软件包时,只需要软件包的名称。

如果存在多个版本,默认安装最高版本(latest)。

每个RPM软件包包含3部分内容:

 1. 安装的文件
 2. 元数据(metadata):
 如name、version、release和arch;软件包的摘要和描述;依赖关系;授权许可信息;软件包更改日志。
 3. 安装、更新或删除软件包时可能运行的脚本。
RPM软件包验证原理:该过程类似Chrome Mailvelope邮件签名过程
 1. 红帽使用相应的GPG私钥对RPM软件包进行数字签名(digitally sign)。
 2. 安装RPM软件包的主机的RPM系统使用GPG公钥(/etc/pki/rpm-gpg/RPM-GPGKEY-*)解密由GPG私钥
 加密的签名,通过签名来验证软件包的完整性。
 3. 如果GPG数字签名不匹配,RPM系统拒绝安装软件包。  

通过RPM包更新软件:

红帽默认安装最新版本软件,更新软件时,将先卸载旧版本,再安装新版本(通常保留配置文件)。通常只能安装一个版本的软件包。
个别软件可以同时安装多个版本,如kernel。 若新版本kernel安装失败而无法引导系统时,可切换至旧版本kernel重新引导系 统。 检查RPM软件包:
rpm命令可以用于管理rpm软件包,也可以查询rpm软件包信息。
rpm命令默认从本地rpm数据库查询软件包信息,但 -p 选项可以指定未安装的rpm软件包。

常用rpm查询命令示例:

 $ rpm -qa:查询所有已安装的rpm软件包
 $ rpm -qf <filename>:查询指定文件所属的rpm软件包
 $ rpm -q <package_name>:查看当前已安装的rpm软件包版本
 $ rpm -qi <package_name>:查看当前已安装的rpm软件包详细信息
 $ rpm -ql <package_name>:查看当前已安装的rpm软件包中的所有文件
 $ rpm -qc <package_name>:查看当前已安装的rpm软件包中的配置文件
 $ rpm -qd <package_name>:查看当前已安装的rpm软件包中的文档
 $ rpm -q --changelog <package_name>:查看当前已安装的rpm软件包更改信息
 $ rpm -q --scripts <package_name>:查看当前已安装的rpm软件包中安装、升
级与卸载过程中运行的脚本
$ rpm -qpl <uninstalled_package_name>.rpm:查看未安装rpm软件包的所有
文件

安装RPM软件包:

$ rpm -ivh <package_name>.rpm:安装rpm软件包
  • 注意:
 1. 安装第三方软件包时,RPM软件包可能会含有在安装过程中以root用户运行任
意脚本。
 2. 可以从RPM软件包中提取文件,而不安装此软件包。
 3. rpm2cpio程序可以将RPM的内容传递给cpio归档工具,后者可以提取所有文 件或单个文件。


相关文章
|
4天前
|
存储 Java Linux
CentOS软件包管理
CentOS软件包管理
70 0
|
10月前
|
Linux 数据库 开发工具
CentOS软件管理 - RPM工具
CentOS软件管理 - RPM工具
193 0
|
Ubuntu
Ubuntu下使用rpm 软件包
Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。 sudo apt-get install alien sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成一个同名的xxxx.
1024 0
|
Java Linux 开发工具
|
数据安全/隐私保护 数据库管理
|
数据安全/隐私保护