云原生应用构建:基于OpenShift
上QQ阅读APP看书,第一时间看更新

2.1 什么是RPM

RPM全称为Red Hat Package Manager,即Red Hat Linux发行版的软件包管理器。RPM的出现,提升了Linux软件安装、升级的便捷性。RPM遵循GPL协议,除了Red Hat Linux发行版,Caldera OpenLinux、SUSE以及Turbo Linux等Linux的发行版也使用RPM,因此RPM是Linux软件包管理的行业标准。为了使读者能够更深入地理解RPM,我们先介绍软件的构建方法。

计算机软件是从源代码构建出来的。源代码是人们以人类可读的语言书写的、让计算机执行任务的指令。人类可读的语言格式和规范,就是编程语言。

从源代码制作软件的过程,称为软件编译。从源代码到软件的编译方式有两种。

·本机编译(Natively Compiled),对应编译型语言。

·解释编译(Interpreted Compiled),对应解释性语言。

在本机编译方式下,代码可以独立编译成机器代码或直接编译为二进制可执行文件。本机编译构建的软件包中,包含编译环境下计算机体系架构的特征。例如,使用64位(x86_64)AMD计算机编译的软件,不能在Intel处理器架构上运行。

与本机编译可以独立执行相对应,某些编程语言不能将软件编译成计算机可以直接理解的格式,需要用到语言解释器或语言虚拟机(如JVM),我们称之为解释编译。常用的解释语言有Byte Compiled(源代码需要编译成字节代码,然后由语言虚拟机执行,如Python)和Raw Interpreted(原始解释语言完全不需要编译,它们由解释器直接执行,如Bash shell)两种。

我们常用的bash shell和Python是解释型的,这种方式编译出的程序与硬件架构无关,通过这种方式编译出的RPM会被标注为noarch(说明RPM包不依赖于特定Linux发行版)。

在介绍了源代码的编译方式后,接下来我们通过实验的方式展现软件的编译过程。