您为Kylix做好准备了么?
做好的程序员一如做人。多看多想或许他山之石可以攻玉,但永远不要成为代码的奴隶。 CKER
原著:Borland 翻译: CKER
Translated by
CKER
您为Kylix做好准备了么?当然!可您的系统为Kylix准备好了么?开发Kylix的时候,我们发现了一些问题,尽管绝大多数最新的Linux版本已经注明了这些问题。但若您手里的Linux是个旧版本的话,比如说您上个星期下载的Linux版本,您也许会碰见和我一样的问题。阅读本文您就可以让您的系统为Kylix做好准备!
第一步是下载我们的测试程序和glibc的补丁。您可以从 http://www.borland.com/devsupport/kylix/downloads/下载Borland Kylix的Pre-Test程序。下载后解开tar格式的压缩文件您会发现叫做BORPRETEST的目录。此目录下有一个叫做testsytem的shell script。这个script运行一个叫做borpretest的测试程序,检查您的系统是否满足安装Kylix的基本需求。比如libjpeg的版本,基本 libc 的版本,等等等等。此外,它还尝试加载和卸载一些系统模块来测试与Linux loader的兼容性。如果您系统中拥有正确的系统文件来运行Kylix的话,borpretest会在其终端输出中告诉你。详细的错误讯息描述包含在叫做PREINSTALL的文本文件中。本文将着重于添加几条关于Linux loader的BUG的详细讯息,以及如何升级您的系统。
此处是对Linux loader的主要BUG的简短描述。假设我们把您程序加载的一个模块叫做Module A,Module A又与Module A1有依赖关系,您的程序同时又加载了Module B。如果Module B共享与Module A1的依赖关系的话,您在试图同时卸载Module A和B的时候就会有麻烦啦!同时卸载Module A和B之后,Module A1的引用计数(reference count)无法被正确更新,如果以后再使用这个引用的话会导致崩溃!幸运的是我们已经知道如何弥补这个问题,gnu.org已经同意将其加入主要的libc分支版本中。
您能否得到这个问题的修正取决于您的Linux发行版本。目前我们已经有针对Red Hat 6.2, 7.0, Mandrake 7.2 和 SuSE 7.0的pre-built解决方案。
Red Hat 7.0的glibc 2.2正式版本中包含了此修正。Red Hat 6.2目前还没有发布正式补丁。我们已经提供了6.2的一个内部使用版的补丁,但还未被Red Hat所支持。通常您可以在您的开发环境中安全使用它,但我们建议您不要向您的用户们分发此版本。我们已经就Kylix的相关内容对其进行了测试,但还不能保证使用这个补丁的安全性。使用风险由您自负。同时我们提供补丁的所有源文件。
Mandrake已经发布了一个包括此修正的“非正式的”glibc分支版本,您可以从 ftp://ftp.sunet.se/pub/Linux/distributions/mandrake-devel/unsupported/i586处下载。此外您应该注意Mandrake的发行版本不带debug符号,这使得在Mandrake上进行调试变得有点困难。我们建议您带debug符号重新编译系统。
SuSE已经发布了7.0版的正式补丁,可以从http://www.suse.com/us/support/download/处下载。Kylix的Server版和Desktop版将和SuSE7.0的已修订过的共享版捆绑发行。
我们已经提供此测试程序的源文件。在安装Kylix之前我们使用相同的测试机制。如果Loader的补丁没有安装,Kylix将拒绝安装。您也许希望在您的安装程序中进行相似的检查。
您的程序碰见这个Loader的bug吗?这取决于您所使用的package(包)以及是否动态加载了存在共享依赖性的模块。这种可能性完全存在。Kylix的IDE做了许多如此的行为,我们绝对需要在任何一台安装Kylix的开发机器上修正此Loader的BUG。
如果您手里的Linux发行版本还没有发布一个正式补丁,您应该直接接洽他们并怂恿他们赶快发一个吧。这意味着您可以看看我们的补丁源文件并努力将他们应用到您的Linux发行版本中。此外,任何提供了glibc 2.2的升级版本的Linux发行版本都已经对此进行了修正。
打过这些补丁之后您可以开始安装Kylix啦!
愿您一路走好!