软件安装与升级——rpm

软件安装与升级——rpm

RPM与SRPM

是的简称,是一种软件管理机制,起初是有公司发展出来的。是以一种数据库记录的方式来将我们所需的软件安装到Linux系统中。软件包制作时,会将安装软件源码进行编译,并将安装该软件时所需的关联软件记录到软件包的数据库中,。当开始安装软件时,会通过软件包里的数据库数据检查安装环境中是否已安装关联软件,若关联软件已安装则开始安装该软件,若关联软件未安装则不予安装。安装时,会将软件信息写入相关的数据库,以便未来的查询、验证和删除。通过的这些机制,我们可以发现其有以下优点:

  • 内含已经编译过的程序与配置文件等数据,可以让用户免除重新编译的困扰
  • 在被安装前,会先检查系统的硬盘容量、操作系统版本等,避免文件被错误安装
  • 文件本身提供软件版本信息、关联软件名称、软件用途说明、软件所含文件等信息,便于了解软件
  • 使用数据库记录文件的相关参数,便于软件升级、移除、查询、验证

但由于的这个机制,其在软件管理时也有以下问题:

  • 软件安装时的环境必须与制作软件包时的环境一致
  • 安装之前需要安装软件的关联软件
  • 删除软件时,与该软件关联的底层软件不可先删除,否则可能造成整个系统的问题

为了解决以上问题,出现了。是的意思,软件包里含有软件的原始码,软件包提供的软件内容并没有经过编译,提供的是原始码。通常的扩展名是以的格式命名。虽然和一样只提供原始码,但是里面还含有软件所需的关联软件说明以及所有RPM文件所提供的数据。和不同的是软件包提供了参数配置文件、。当我们使用软件包安装软件时,我们要执行以下步骤:

  • 先将软件以管理的方式编译,将编译成文件
  • 然后将编译完成的文件安装到Linux系统中

下面是和的简单比较。

软件包 文件格式 直接安装 程序类型 可否修改参数并编译
RPM xxx.rpm 已编译 不可
SRPM xxx.src.rpm 原始码,未编译

软件包名称的命名格式

一般情况下,一个软件包的名称包含了软件名称、版本信息、编译次数、硬件操作平台这些信息。以软件包为例。

  • 软件名称:每个软件的名称,以上软件包的软件名称为
  • 版本信息:软件的版本,版本有主版本和次版本。以上软件包的主版本为,次版本为。次版本就是在主版本的架构下改动部分原始码的内容
  • 编译次数:由于一些bug或安全上的考虑,软件的代码会更新并编译
  • 硬件操作平台:主要是指操作平台的,由于可以适用在不同的操作平台上,但不同的平台CPU设定的参数还是有所差异性。开发者可以根据不同的CPU设定不同的参数,从而充分利用CPU,让软件性能更好。以下是软件包中常见的一些名称。
平台名称 适合平台说明
i386 几乎适用于所有的 平台,不论是旧的 还是新的 与 系列的 等等,都可以正常工作。 是 兼容的 的意思,是的等级
i586 针对等级的计算机进行优化编译,等级的有: 第一代 、 的 系列等
i686 在 以后的 系列 ,及 以后等级的。目前市场上几乎仅剩 以后的
x86_64 针对位的进行优化编译设定,包括 的 以上等级 ,以及 的 以后等级的
noarth 没有硬件等级限制,一般这种类型的 文件中没有 存在,较常用于 方面的软件

RPM的使用

安装软件时,软件文件存放位置如下表。

目录名称 存放文件
/etc 配置文件
/usr/bin 可执行文件
/usr/lib 程序使用的动态函数库
/usr/share/doc 基本的软件使用手册与说明文件
/usr/share/man 文件

RPM安装

以下是安装软件时的基本语法。

选项与参数:

  • :install 的意思
  • :查看详细的安装过程
  • :安装时显示安装进度
  • :安装时的一些选项,以下是安装时常用的一些选项
选项 用途
–nodeps 强制安装,当软件因关联软件未安装而无法安装时, 使用该选项可以安装软件,但安装的软件可能会因为缺少关联软件而无法正常使用
–replacefiles 覆盖文件,当软件安装过程中出现 或的信息时,可以使用该选项来直接覆盖文件,但覆盖之前需要考虑清楚,因为覆盖后无法复原
–replacepkgs 重新安装已经安装过的软件,当系统提示的信息,无法继续安装时,可以使用该选项来重新安装相应的软件
–force 与的综合
–test 想要测试某软件是否可以被安装到使用者的Linux环境中,可通过该选项来进行测试,找出软件关联问题,如:
–justdb 由于数据库破损或其他缘故产生错误时,可使用这个选项来更新软件在数据库内的相关信息
–nosignature 想要忽略数字签名的检查时,可以使用该选项
–prefix new_path 要将软件安装到非正规目录时,可以使用该选项。如某软件要安装到中,而不是正规的、等目录中,就可以通过来处理
–noscripts 不想让某软件在安装时自动执行一些系统指令时,可以使用该选项。除了可以将文件放置到指定位置外,还可以自动执行一些前置作业的指令,如数据库的初始化

RPM升级与更新

可以通过或来进行升级,而选项(options)的使用则和安装时一样。

与是有一定的区别的。

指令 用途
-Uvh 后面接的软件没有安装过,系统会予以直接安装;后面接的软件有安装的旧版,系统自动更新至新版
-Fvh 后面接的软件并未安装,系统不会安装该软件;后面接的软件有安装,软件会被升级

RPM查询

查询的时候,实际查询的是这个目录下的数据库文件。此外,可以查询未安装的软件信息。

下面是选项与参数介绍。
查询已安装软件的信息:

  • :仅查询后面接的软件名称是否有安装
  • :列出所有已安装在本机Linux系统上的所有软件名称
  • (information):列出该软件的详细信息,包含开发商、版权与说明等
  • (list):列出该软件所有的文件与目录所在完整文件名
  • (configure):列出该软件的所有配置文件,即找出在下的相关文件
  • (document):列出该软件的所有说明文件,找出与有关的文件
  • (Required):找出与该软件有关的关联软件所含的文件
  • (filename):由后面接的文件名,找出该文件属于哪一个已安装的软件

查询某个 RPM 文件内含有的信息:

  • :后面接的所有参数与上面的含义一致,但是用于找出某个文件内的信息,而不是已安装的软件信息

RPM验证与数字签名

验证

验证的机制就是使用底下的数据库内容来比对目前Linux系统环境下的所有软件。这可以给系统管理员提供一个有效的管理机制。当数据不小心遗失,或误删了某个软件文件,或忘记修改了哪一个软件文件内容时,就可以用这个方法来验证比对原本的文件系统,从而找出那个文件。验证语法如下:

选项与参数

  • :后面接软件名称,若该软件所含的文件被更改过,才会被列出来
  • :列出目前系统上面所有可能被改动过的文件
  • :后面接的是文件名,列出该软件内可能被改动过的文件
  • :判断某个文件是否被改动过,有被改动过则被列出来

验证文件如下:

可以看到文件名称前面有两段字符,第一段字符有、、、,这个是对文件的一个描述,从左到右的顺序如下:

  • :文件大小是否被改变
  • :文件类型或文件属性(rwx)是否被改变
  • :MD5加密内容已经不同
  • :装置的主/次代码已经改变
  • :Link路径已经改变
  • :文件的所属人已被改变
  • :文件的所属群组已被改变
  • :文件的建立时间已被改变
  • :功能已被改变

第二段有、这些字符,代表的是文件类型。文件类型有以下这些:

  • :配置文件
  • :文件数据文件
  • :鬼文件,通常是该文件不被某个软件所包含,较少发生
  • :许可证文件
  • :字数文件

数字签名

  1. 首先必须要先安装原厂释出的公钥文件
  2. 实际安装原厂的RPM软件时,指令会读取RPM文件的签名信息,与本机系统内的签名信息比对
  3. 若签名相同则予以安装,若找不到相关的签名信息,则给予警告并停止安装

使用的数字签名系统是GNU计划的。在中,原厂释出的GPG数字签名公钥文件位于,则安装如下:

安装完之后,就可以通过数字签名来查询验证软件了。

RPM 软件卸载与重建数据库

软件卸载的过程一定要由最上层到最下层的顺序移除,否则会因为软件关联问题导致某些软件无法移除。

RPM操作时肯能会导致RPM数据库内的文件破损,此时可以用这个选项来重建数据库。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年10月4日
下一篇 2018年10月4日

相关推荐