翻译自:20 Practical Examples of RPM Commands in Linux

国内译文:20个Linux中RPM命令的实际示例

包管理机制——RPM、dpkg

rpm本身是用来管理本地rpm包的命令。其背后靠的是RPM包管理机制。Fedora, CentOS, SuSE等发行版均采用RPM包管理机制。

本地包管理机制除了RPM还有dpkg,主要是Ubuntu和Debian再用。

rpm命令仅适用于基于.rpm格式的软件包。rpm在安装的时候不会自动解决依赖问题,但是她会告诉你依赖哪些包。

Linux命令——rpm

本地管理机制和在线管理机制有啥差别?

本地和在线,两者区别主要在于是否解决包依赖问题。通过上图,无论dpkg还是RPM,其包本身都含有:平台相关代码、依赖属性表、环境检查脚本。只有在环境检查OK,包依赖OK的情况下才能顺利安装软件,安装完毕后会更新数据库。本地管理方式虽然含有包依赖属性表,但是他只是提醒你缺少那些依赖,不会自动帮你装上,最终要手动解决依赖问题。而在线机制就解决了这个问题,透过在线机制, 原版光盘就只有第一次安装时才会用到,其他时候只要有网络,你就能够取得原始开发商所提供的任何软件了。

RPM和SRPM

RPM包由于是已编译好的,在软件传输安装上都很方便。但是有一个问题很突出,就是一个发行商的软件包只能用在自己的平台上,有的时候甚至是自己平台的特定版本上才行。如果其他平台觉得这个包提供的功能好,想移植到自己平台上怎么办呢?可以使用SRPM。

通常 SRPM 以 ***.src.rpm 格式命名。其组成如下图

Linux命令——rpm

与RPM区别

Linux命令——rpm

通常Red Hat RHEL 放出后,会连带将 SRPM 一起放出。CentOS就将这些 SRPM 收集起来并重新编译成为所需要的软件,再发行成为 CentOS,因此号称与 Red Hat RHEL 同步。

在哪找RPM包

下面是rpm站点列表,您可以在其中找到并下载所有RPM包。

请记住,在Linux中安装软件包时,必须是root用户。

RPM包命名

rp-pppoe-3.1-5.i386.rpm

Linux命令——rpm

版本信息

每一次升级版本就需要有一个版本信息,否则如何知道这一版是新是旧?版本信息又分为主版本、次版本。以上面为例,主版本为 3 ,在主版本的架构下更动部分原始码内容,而释出一个新的版本,就是次版本。以上面为例,就是 1 。

发布次数

通常就是编译的次数。为何需要重复的编译呢?这是由于同一版的软件中,可能由于有某些 bug 或者是安全上的顾虑,所以必须要进行小幅度的 patch 或重设一些编译参数。 配置完成之后重新编译并打包成 RPM 文件,因此就有不同的打包数出现了。

硬件平台

由于RPM 可以适用在不同的操作平台上,但是不同的平台配置的参数还是有所差异性。并且,我们可以针对比较高阶的 CPU 来进行最佳化参数的配置,这样才能够使用高阶 CPU 所带来的硬件加速功能。 所以就有所谓的 i386, i586, i686, x86_64 与 noarch 等的文件名称出现了

Linux命令——rpm

得益于X86平台良好的向下兼容性,i386的软件可以允许在高等级的平台上,但是高等级平台的软件就不可以在低等级的平台运行。总的来说,还是选适合自己平台的软件好,跨平台多多少少都有性能损失。

rpm命令示例

如何检查RPM签名包

在Linux系统上安装软件包之前,请务必检查软件包的PGP签名,并确保其完整性和来源正常。 使用以下命令和 -checksig(check signature)选项检查名为pidgin的包的签名。

[root@tecmint]# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-28
  • 2021-07-15
  • 2021-06-27
  • 2021-08-09
  • 2021-12-09
  • 2022-12-23
猜你喜欢
  • 2021-07-10
  • 2021-09-03
  • 2021-09-21
  • 2022-12-23
  • 2021-09-28
  • 2021-12-09
  • 2022-01-18
相关资源
相似解决方案