Linux实用工具-rpm软件包构建(1)

使用rpm进行软件管理

简介

Rpm原来是RedHat Linux下使用的软件包管理工具。本文介绍使用rpm相关工具制做和管理软件包。

制作软件包就是根据源代码或者编译好的二进制文件生成rpm软件包。管理软件包就是使用rpm对软件包进行管理(安装,卸载,查询软件信息等)。重点讲解rpm软件包的制作。

前言

什么是软件管理?这里提到的软件管理,范围主要限于软件的安装,卸载,查询。

为便于理解,先给出一个虽然不太准确,但是比较直观的、手动管理软件的过程描述:

  1. 当我们获取到软件源代码之后,将软件源代码进行编译,生成最终的可执行程序以及其依赖的库。
  2. 将生成的库和可执行文件拷贝到机器中的系统目录中以便可以在一个统一的地方进行运行,拷贝完之后设置好一些环境变量(例如告诉系统可执行文件在哪里,甚至是添加一些菜单等),这样就可以运行软件了。
  3. 当我们不需要软件的时候,将之前拷贝的文件从系统目录中删除,并把为了配置软件而设置的一些环境变量以及菜单恢复成修改之前的状态。

对于以上的过程,其实2)就是对软件的安装过程。3)就是对软件的卸载。而1)过程是根据软件源代码编译生成可用的软件,一般对于最终用户来说,可能会没有这个步骤。

从这个过程中我们可以看出,手动管理软件,优势是可以清楚地知道安装程序时在什么地方安装了哪些文件,卸载的时候也非常彻底,不会给系统留下垃圾文件;但是,却有很多缺点:

  • 首先,对用户要求较高。用户不仅会使用软件,而且要知道软件是如何来的,以及如何编译,整套软件具体包含哪些文件等等;
  • 其次,管理过程麻烦。一切拷贝都手动进行很容易出错;
  • 再次,维护不便。因为并没有什么机制来将自己曾经手动安装的过程一一记录下来,所以如果在机器上用这种方式安装许多软件,那么很难全部记住以前究竟安装了哪些软件,安装的软件是什么版本等,。

针对以上缺点,rpm软件管理工具实现了软件的编译,安装,卸载自动处理,最初只需要得到软件的rpm包,然后双击或者通过一条特殊命令就可以实现软件的安装,省去了编译和手动拷贝的麻烦,而且rpm本身还提供了数据库,记录曾经安装过什么软件,以及软件的信息等,为软件维护也提供了方便。

以下两点,可以帮助我们更容易了解所述内容:

  1. 使用rpm软件管理与不使用rpm软件管理的情况

    并不是所有的软件都提供.rpm方式的安装。有些开发者会提供rpm方式的二进制软件包,以便用户选择使用。但只发布软件的源码,最后一部分的编译和安装需要用户自行解决也是很常见的。

  2. 使用rpm管理软件的优势

    使用tar包或cpio等也可以打包文件,甚至比制作rpm要简单很多。但如果想在安装的过程中就把一套额外的软件部署完毕,那使用rpm方式通常是是更好的方法,而且rpm还有数据库协助软件升级、文件校验等,结合yum升级方式,特别是对于最终用户,提供rpm包几乎是最佳的方法。

通过本文,我们将知道,在只有软件源代码的情况下,如何使用rpm工具制做相应的自动化软件安装包,以及一些基本的使用rpm管理软件的方法。以下将是本文主要内容,如果有问题或者建议可以联系我。

主要内容

一、软件包制作
1,描述文件
2,制做rpm包的具体方法
二、一些软件包管理的命令
三、补充

你可能感兴趣的:(Linux实用工具-rpm软件包构建(1))