理解Red Hat包管理器
时间:2007-02-06 来源:evegl
理解Red Hat包管理器(RPM)
Red Hat软件包管理器(RPM)虽然被冠以Red Hat的名称,但它却是许多Linux发布版本使用的强大、通用和开放的软件打包系统,采用它的Linux发布版本有OpenLinux、SuSE, TurboLinux、Mandrake和Red Hat Linux,但是还不仅仅局限于这几种。RPM最常用于Linux,但也用于其他许多UNIX的版本,包括Solaris、SunOS、HP-UX、 SCO UNIX (既包括OpenServer也包括UnixWare)、AIX和Digital UNIX。本章有关RPM的讨论集中在创建源代码的软件包上。如果想从终端用户的角度了解有关RPM的更多知识,可以阅读Ed Bailey撰写的优秀书籍<<Maximum RPM>>,它涵盖的现实中的问题有安装,升级和删除RPM,以及包创建和维护者使用的功能。把你的浏览器指向http: //www.rpm.org得到最新版本的RPM、完整的文档、FAQ和HOWTO以及该书的一个可以下载的版本。不幸的是,<< Maximum RPM>>介绍的是2.x版本的RPM。本章则讨论3.0版本。但这本书依然是一本有价值的参考书(对于这本书,我还是强烈建议你购买它,使 将它免费共享的作者和出版社受到应有的回报)。
RPM是什么
RPM是一种软件包管理工具,它的设计使得系统维护,升级和安全工作变得更容易。RPM让系统维护工作极为轻松,因为当你获得并编译源代码的RPM时,在 编译产生的二进制代码的RPM能够和你的系统保持兼容这一点上,你会具有高度自信。例如,它不会覆盖你需要的C库。如果你缺乏某个所需的库,或者某个库的 版本太旧(或太新),RPM都不能编译。RPM还维护了一个已安装软件的数据库以及一个依赖关系列表,能够让管理员知道在他的系统上安装了什么软件,并让 程序员确信他的程序不会在不满足设计条件的系统上安装。很快我们就会在这个问题上进行更多的讨论。
类似地,升级一个基于RPM的系统也是相当直观的工作。在许多情况下,如果发布了一个新版的软件包,你只需要安装它即可。因为RPM的流行和广泛使用,新 程序的RPM包总能在至多几天之内得到。这就是消除了为了在你的系统上运行该程序而定制软件包的痛苦。
最后,RPM维护了一个数据库,其中包含了已安装软件的丰富信息,比如创建日期、安装日期、文件大小、每个软件包安装的文件清单以及每个安装的文件的数字 签名和校验和。这个数据库能够让你很轻松地确认你6星期前安装的软件到现在都没有被改动过。如果一个黑客破坏了你的系统并且安装了一个具有超级用户权限的 程序,RPM能报告说某个文件的校验和(或者它的时间戳,或者它的数字签名)的变化,并且向你警告这个事实,让你能适时地采取措施。
从程序员的角度来看,RPM消除了软件维护中的许多难点。一旦你拥有了一个构造可靠而稳定的RPM,而你所要作的一切就是升级一个配置文档(更准确地说, 是一个spec文件),向源代码目录加入一个补丁,并且确认那个软件包能够构造。RPM考虑有关应用补丁、核实依赖性、编译程序以及安装等方面的细节。重 要的是体察RPM后面的思想。RPM总是从质朴的源代码开始。这里的"质朴"意思是出自开发者之手,原始的,没有打过补丁的代码(在大多数情况下,这个开 发者就是你)。RPM能让你或者其他人把一个或多个补丁加到你最初的源代码上、修改软件以便能在特殊系统上编译、创建特定系统的配置文件,或者在重新编译 之前应用(或取消)对缺限的修正。重视维修改的源代码能让你或者你的用户始终可以从一个已知的、可靠的并且经过测试的源代码库开始一次构造,并且对它进行 定制以适合特殊的应用场合,或者测试源代码库并对它进行定制以适合特殊的场合。作为一名开发人员,这能给予你在创建有用而可靠的软件方面高度的灵活性,还 能给予你在软件如何编译和安装方面高度的控制能力。
最小要求
要创建RPM,你需要RPM软件本身,你想要编译的源代码、一个设置某些RPM默认值和定制RPM行为的rpmrc文件,以及一个控制软件包构造过程的 spec(规范)文件。这里的内容假定你已经拥有了一个能起作用的开发环境(编译器、make和install工具、工具软件、编辑器、冷比萨冰、咖啡、 可乐等等),更重要的是,你的源代码能够成功编译。
配置RPM
rpmrc文件控制RPM行为的几乎每一个要素。你的系统管理员可以在/etc下保留一个全局的rpmrc文件。如果你愿意覆盖一个或多个全局设定,可以创建~/.rpmrc,在其中包含你更喜欢的配置。但是,在你动手之前,可能需要看看RPM当前的配置。
$rpm --showrc
$prep
$setup
$patch -pl -b .caldera.patch
$build
$install
$clean
$files
$cd ~/SPECS
$rpm -ba xearth-1.0-6.spec
Red Hat软件包管理器(RPM)虽然被冠以Red Hat的名称,但它却是许多Linux发布版本使用的强大、通用和开放的软件打包系统,采用它的Linux发布版本有OpenLinux、SuSE, TurboLinux、Mandrake和Red Hat Linux,但是还不仅仅局限于这几种。RPM最常用于Linux,但也用于其他许多UNIX的版本,包括Solaris、SunOS、HP-UX、 SCO UNIX (既包括OpenServer也包括UnixWare)、AIX和Digital UNIX。本章有关RPM的讨论集中在创建源代码的软件包上。如果想从终端用户的角度了解有关RPM的更多知识,可以阅读Ed Bailey撰写的优秀书籍<<Maximum RPM>>,它涵盖的现实中的问题有安装,升级和删除RPM,以及包创建和维护者使用的功能。把你的浏览器指向http: //www.rpm.org得到最新版本的RPM、完整的文档、FAQ和HOWTO以及该书的一个可以下载的版本。不幸的是,<< Maximum RPM>>介绍的是2.x版本的RPM。本章则讨论3.0版本。但这本书依然是一本有价值的参考书(对于这本书,我还是强烈建议你购买它,使 将它免费共享的作者和出版社受到应有的回报)。
RPM是什么
RPM是一种软件包管理工具,它的设计使得系统维护,升级和安全工作变得更容易。RPM让系统维护工作极为轻松,因为当你获得并编译源代码的RPM时,在 编译产生的二进制代码的RPM能够和你的系统保持兼容这一点上,你会具有高度自信。例如,它不会覆盖你需要的C库。如果你缺乏某个所需的库,或者某个库的 版本太旧(或太新),RPM都不能编译。RPM还维护了一个已安装软件的数据库以及一个依赖关系列表,能够让管理员知道在他的系统上安装了什么软件,并让 程序员确信他的程序不会在不满足设计条件的系统上安装。很快我们就会在这个问题上进行更多的讨论。
类似地,升级一个基于RPM的系统也是相当直观的工作。在许多情况下,如果发布了一个新版的软件包,你只需要安装它即可。因为RPM的流行和广泛使用,新 程序的RPM包总能在至多几天之内得到。这就是消除了为了在你的系统上运行该程序而定制软件包的痛苦。
最后,RPM维护了一个数据库,其中包含了已安装软件的丰富信息,比如创建日期、安装日期、文件大小、每个软件包安装的文件清单以及每个安装的文件的数字 签名和校验和。这个数据库能够让你很轻松地确认你6星期前安装的软件到现在都没有被改动过。如果一个黑客破坏了你的系统并且安装了一个具有超级用户权限的 程序,RPM能报告说某个文件的校验和(或者它的时间戳,或者它的数字签名)的变化,并且向你警告这个事实,让你能适时地采取措施。
从程序员的角度来看,RPM消除了软件维护中的许多难点。一旦你拥有了一个构造可靠而稳定的RPM,而你所要作的一切就是升级一个配置文档(更准确地说, 是一个spec文件),向源代码目录加入一个补丁,并且确认那个软件包能够构造。RPM考虑有关应用补丁、核实依赖性、编译程序以及安装等方面的细节。重 要的是体察RPM后面的思想。RPM总是从质朴的源代码开始。这里的"质朴"意思是出自开发者之手,原始的,没有打过补丁的代码(在大多数情况下,这个开 发者就是你)。RPM能让你或者其他人把一个或多个补丁加到你最初的源代码上、修改软件以便能在特殊系统上编译、创建特定系统的配置文件,或者在重新编译 之前应用(或取消)对缺限的修正。重视维修改的源代码能让你或者你的用户始终可以从一个已知的、可靠的并且经过测试的源代码库开始一次构造,并且对它进行 定制以适合特殊的应用场合,或者测试源代码库并对它进行定制以适合特殊的场合。作为一名开发人员,这能给予你在创建有用而可靠的软件方面高度的灵活性,还 能给予你在软件如何编译和安装方面高度的控制能力。
最小要求
要创建RPM,你需要RPM软件本身,你想要编译的源代码、一个设置某些RPM默认值和定制RPM行为的rpmrc文件,以及一个控制软件包构造过程的 spec(规范)文件。这里的内容假定你已经拥有了一个能起作用的开发环境(编译器、make和install工具、工具软件、编辑器、冷比萨冰、咖啡、 可乐等等),更重要的是,你的源代码能够成功编译。
配置RPM
rpmrc文件控制RPM行为的几乎每一个要素。你的系统管理员可以在/etc下保留一个全局的rpmrc文件。如果你愿意覆盖一个或多个全局设定,可以创建~/.rpmrc,在其中包含你更喜欢的配置。但是,在你动手之前,可能需要看看RPM当前的配置。
$rpm --showrc
$prep
$setup
$patch -pl -b .caldera.patch
$build
$install
$clean
$files
$cd ~/SPECS
$rpm -ba xearth-1.0-6.spec
相关阅读 更多 +