软件安装与升级——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路径已经改变
- :文件的所属人已被改变
- :文件的所属群组已被改变
- :文件的建立时间已被改变
- :功能已被改变
第二段有、这些字符,代表的是文件类型。文件类型有以下这些:
- :配置文件
- :文件数据文件
- :鬼文件,通常是该文件不被某个软件所包含,较少发生
- :许可证文件
- :字数文件
数字签名
- 首先必须要先安装原厂释出的公钥文件
- 实际安装原厂的RPM软件时,指令会读取RPM文件的签名信息,与本机系统内的签名信息比对
- 若签名相同则予以安装,若找不到相关的签名信息,则给予警告并停止安装
使用的数字签名系统是GNU计划的。在中,原厂释出的GPG数字签名公钥文件位于,则安装如下:
安装完之后,就可以通过数字签名来查询验证软件了。
RPM 软件卸载与重建数据库
软件卸载的过程一定要由最上层到最下层的顺序移除,否则会因为软件关联问题导致某些软件无法移除。
RPM操作时肯能会导致RPM数据库内的文件破损,此时可以用这个选项来重建数据库。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!