当前位置:Linux教程 - 内核技术 - 内核技术 - 技巧:从源代码开始升级应用程序

内核技术 - 技巧:从源代码开始升级应用程序

技巧:从源代码开始升级应用程序
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

别被新版本吓住了

Daniel Robbins
Gentoo Technologies 公司总裁兼首席执行官
2000 年 9 月
内容:
升级也可以很简单
阅读 Changelog
升级关键应用程序
按相同的方式进行配置
备份原来的配置文件
手头准备好较旧的源代码
测试!
参考资源
作者简介


好了,您已经从源代码开始编译并安装了第一个应用程序,而且它工作得非常棒。恭喜您!但现在您得到了一个新版本的源代码并希望升级,而且希望一切顺利进行。可以采取哪些有效的措施来避免失误呢?在这篇技巧文章中,我将提供几个这样的措施。

升级也可以很简单
从源代码开始升级软件也可以很简单,但您应该采取几个预防措施,当您初学编译源代码或者不太熟悉正要安装的源代码档案时尤其应该注意。下面列出了您应该密切注意的几点,但在大多数情况下,升级与最初的编译和安装步骤几乎相同。也就是说,这些步骤包括打开 tar 包、可选的 "./configure"、"make" 和 "make install"。如果您不熟悉这些术语,请首先查看 developerWorks 的 Compilingand installing software from sources 教程,然后再回头阅读本文。

阅读 Changelog
下载源代码以后,首先熟悉一下软件有哪些新变化 -- 这些变化通常在源代码主目录的 ChangeLog 或 README 文件中列出。您可能发现配置文件设置稍有变化,或者添加了一些新特性。最好在源代码的文档中弄清这些变化,而不要等到以后在这些地方犯了错误再补救。不进行这一步绝对是错误的 -- 另外,既然您花时间来安装这个软件包的新版本,了解一下它包括哪些新特性或修正了哪些错误不是一件好事吗?

升级关键应用程序
如果您正在升级对许多用户都有影响的应用程序(如繁忙的 Web 服务器上的 Apache),则倍加小心是值得的。如果可能,请首先在非生产机器上安装新版本源代码,并记下使新版本启动并运行所执行的每个步骤。这样,即使您在升级过程中遇到问题,也不会造成什么危害。而且,当您准备对您的生产机器进行升级时,您已经有了要执行的步骤的一个详细列表 -- 从而可以缩短高代价的停机时间。

此外,如果您正在升级关键应用程序,则在非高峰时进行升级总是最佳选择。

按相同的方式进行配置
当升级应用程序时,人们容易犯的重大错误之一是在 "./configure" 行指定不同的、不兼容的选项,或者在 Makefile 配置中取消了不同行的注释标记。如果您希望执行简单的升级,则请确保软件新版本的配置与当前版本的配置完全相同。

如果当前版本在 /etc 目录下查找它的配置文件,则将新版本配置为同样的方式是较好的选择。别草率从事;如果您在 "./configure" 命令行传递了不同的选项,其结果很可能是,新版本具有明显不同的功能,安装在错误的目录树中,或者在错误的位置查找它的配置文件或数据文件。如果您忘了原来所使用的配置选项或 Makefile 定义,则一定要在编译和安装新版本之前查清楚。为使升级顺利进行,您会希望一开始就获得这些设置。

先备份原来的配置文件再进行安装
对许多程序包而言,真正的挑战不在编译和安装阶段,而是在您键入 "make install" 之后设置应用程序以使它正常运行的过程中。这通常需要花好几个小时编辑应用程序的配置文件,配置文件通常在 /etc 目录下,并带有常用的 ".conf" 后缀。

当您通过键入 "make install" 来安装程序包的新版本时,大多数 Makefile 不会覆盖磁盘上现有的配置文件 -- 但如果从安全方面来考虑的话,则应该庆幸这一点,而不是对此表示遗憾。如果您没有十分的把握,则一定要备份以前的配置文件! 某些配置文件可能需要花几天的时间来重新构建,这随程序包的不同而有所不同。如果配置文件包含加密的口令,则重新构建相当耗时,或者干脆就不可能。

如果您正在计划对您的 linux 系统进行重大升级,则现在可能是执行全系统备份的好时机。如果您准备升级作为许多程序包正常工作基础的关键系统库或工具,这就显得尤为重要了。全系统备份本身就是很好的主意,我希望您不定期地对系统进行备份。

手头准备好较旧的源代码
我无意劝阻您将最喜欢的程序升级到最新版本 -- 但新版本的确可能无法工作。"./configure" 或 "make" 可能会崩溃。更糟糕的情况是,包括 "make install" 在内的每个环节都顺利通过,直到实际运行程序时才出现麻烦。多虫的源代码发行版确实存在,这就是之所以在手头保留较旧源代码(以及任何安装步骤)是个好主意的原因,以防较新的源代码不正常。

测试!
编译和安装是一回事,而确信新软件工作正常完全是另一回事。您一定希望确信您不是在根分区中安装了 500 KB 的垃圾。新版本的配置文件可能需要作少许修改,甚至可能需要大幅修改。如果您正在升级守护程序,请确保当重新启动时您的配置脚本成功地启动了这个新版本。您绝对不希望当您在两周以后重新启动服务器(而且您已经淡忘了该程序的配置细节)时发现任何问题。您可以按照本文中的建议进行操作,但是如果您不测试您的安装,则您正在漏掉最重要的步骤。

现在,您应该有足够的知识来升级您喜欢的应用程序了。祝您玩得开心!

参考资源

* 学习 Daniel Robbins 的 tutorial on compiling and installing software from sources 教程,该教程可在 developerWorks 独家为您提供的 linux 工具箱中找到。
* 学习 Daniel 的 tutorial on compiling your linux kernel 教程,这是 developerWorks 专有的另一篇教程!

作者简介
Daniel Robbins 住在新墨西哥州的 Albuquerque,他是 Gentoo Technologies 公司的总载兼首席执行官,他还是 Gentoo linux(一种运行于个人计算机上的高级 Linux)和 Portage 系统(Linux 的下一代端口系统)的创作者。他同时也是 Macmillan 出版的 Caldera OpenLinux Unleashed、SuSE Linux Unleashed 和 Samba Unleashed 几本书的重要作者之一。由于深受 Pac Man 的影响,Daniel 在读二年级时第一次接触到 Logo 编程语言后即执迷于计算机。这可能是他后来作为 SONY Electronic Publishing/Psygnosis 的首席图形艺术家的原因。Daniel 喜欢与他的妻子 Mary 和他的新出生的女儿 Hadassah 共度美好时光。可以通过 [email protected] 与 Daniel Robbins 联系。

您对这篇文章的看法如何?

真棒! 好文章 一般,尚可 需提高 太差!

意见


(c) Copyright IBM Corp. 2001, (c) Copyright IBM China 2001, All Right Reserved
隐私 法律 联系