鸿 网 互 联 www.68idc.cn

Linux 入门记录:十九、Linux 包管理工具 RPM

来源:互联网 作者:佚名 时间:2018-03-04 13:38
一、源代码管理 绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为 tar.gz 的归档压缩文件。程序源代码需要编译为二进制可执行文件后才能够运行使用。源代码的基本编译流程为: ./configure:解压缩后运行该命令,它主要检查编译环境、相关库文件

一、源代码管理

绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为 tar.gz 的归档压缩文件。程序源代码需要编译为二进制可执行文件后才能够运行使用。源代码的基本编译流程为:

  1. ./configure:解压缩后运行该命令,它主要检查编译环境、相关库文件以及配置参数并生成 makefile
  2. make:对源代码进行编译,生成可执行文件
  3. make install:将生成的可执行文件安装到计算机中

源代码形式的软件使用起来较为麻烦,但是兼容性和可控性较好。并且开源软件一般会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系(使用某软件需要先安装其他软件)。

 

二、RPM(RPM Package Manager,RPM包管理器)

使用源代码形式安装软件的优点是适用于所有系统、可定制,而缺点则是操作复杂、编译时间较长、极容易出现错误。为了方便使用,Erik Troan 和 Marc Ewing 开发了 RPM(RPM Package Manager,RPM 包管理器),RPM 最早是应用在 RedHat(红帽)中的。

 

1.设计目标

RPM 通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。RPM 的设计目标如下:

  • 使用简单
  • 使用单一软件包格式文件发布(.rpm 文件)
  • 可升级
  • 追踪软件依赖关系
  • 基本信息查询
  • 软件验证功能
  • 支持多平台

 

2.命名规范

packagename-1.2.0-30.el6.x86_64.rpm

包名-版本号-操作系统-硬件平台

其中,

操作系统:el6 表示 RedHat 6.x 或 CentOS 6.x 操作系统。

硬件平台:x86_64 表示 64 位平台,i386 表示 32 位平台,noarch 表示不需要特定的硬件平台(跨平台)。

 

3.基本命令

安装包:

安装包:rpm -i packagename.rpm

卸载包:

rpm -e packagename

升级包:

rpm -U packagename-new.rpm

通过 http、ftp 协议安装:

rpm - ivh http://www.domainname.com/packagename.rpm

常用参数:

-v    显示详细信息
-h    显示进度条
-i    安装包
-e    卸载包
-U    更新(升级)包
-q    查询
-a    查询所有已安装包
-i    显示包信息
-h    取hash(哈希)
-f    查询文件属于哪个包
-p    未安装包的信息
-l    列出包里的文件

 

三、RPM查询

rpm -qa                     列出已安装的所有rpm包
rpm -qa | grep '.*gnome.*'  列出所有名称含有gnome的包

rpm -qf filename            查询目标文件属于哪个包

rpm -qi package             获取一个已安装包的相关信息
rpm -qip package.rpm        获取一个未安装包的相关信息

rpm -ql package             获取一个已安装包内的文件列表
rpm -qlp package.rpm        列出一个未安装包内的文件列表

  

四、RPM验证

软件包在传播的过程中可能会被恶意地修改,所以为了安全起见,现代系统都加入了对软件包的验证功能。

验证一般使用非对称加密算法,所以需要一个公钥。导入公钥的方法是:

rpm --import /path/to/key_file

验证未安装的软件包:

rpm -K package.rpm

验证已安装的软件包:

rpm -V package

  

 

参考链接:

Linux中RPM包命名规则

YUM 公钥认证及导入

网友评论
<