科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件在Ubuntu安装JBuilder 2006 Enterprise

在Ubuntu安装JBuilder 2006 Enterprise

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

首先告诉大家,拿到了JBuilder 2006的软件包直接跑到Ubuntu Edgy上开装铁定是会失败的! 为什么呢?因为Borland在开发JBuilder 2006的时候,是以某些内核版本比较低的Linux发行版进行开发的,我们先看看Borlan

作者:中国IT实验室 来源:中国IT实验室 2007年9月12日

关键字: 安装 Ubuntu 系统 Linux

  • 评论
  • 分享微博
  • 分享邮件
首先告诉大家,拿到了JBuilder 2006的软件包直接跑到Ubuntu Edgy上开装铁定是会失败的!

为什么呢?因为Borland在开发JBuilder 2006的时候,是以某些内核版本
比较低的Linux发行版进行开发的,我们先看看Borland给出的Release Notes中的说明吧:

Borland® JBuilder® 2006 Enterprise for Linux
  • Intel Pentium III/800 MHz or higher (or compatible)
  • Red Hat® Enterprise Linux 3.0
  • Novel SuSE Enterprise Linux 9

现在用Ubuntu 6.10作为JBuilder 2006的运行平台,会存在一些兼容的问题,原因是JDK的某些版本对NPTL支持不是很好,很大程度上还是依赖于LinuxThread Library的实现

关于Linux中线程库的实现改变,我简单说明如下(没有仔细考究,大家凑活一下... ^ ^||| ):

Linux Distribution Linux Kernel GNU C Library Linux Threading Library
Red Hat® Enterprise Linux 3.0 kernel-smp-2.4.21-3.EL.i686 glibc-2.3.x, compat-glibc-2.2.4 NPTL,LinuxThread
Ubuntu Edgy 6.10 2.6.17-10-generic SMP i686 glibc-2.4 NPTL,LinuxThread(弃用)

已知在NPTL上面存在问题的Java VM有:Sun JRE < 1.4.1 和 IBM JRE (版本不知,再次汗!)


所以呢,一般的做法会用更改LD_ASSUME_KERNEL环境变量的方法去强制改变内核默认的线程库的实现,使用旧的LinuxThread模式:

LD_ASSUME_KERNEL 对应 LinuxThread 的说明
2.4.19 Linuxthreads with floating stacks
2.2.5 Linuxthreads without floating stacks

说到这里让我们回到开头,为什么JBuilder 2006在Ubuntu Edgy上面会安装失败呢?甚至连安装的界面都出不来呢!?--b

我们看看这个操作就知道了:

[xport@ubuntu ~] $ grep "LD_ASSUME_KERNEL" /media/cdrom/Disk1/InstDatahttp://Linux.chinaitlab.com/VM/install.bin
linux_LD_ASSUME_KERNEL_hack=0;
                                                                linux_LD_ASSUME_KERNEL_hack=1
# LD_ASSUME_KERNEL for Native POSIX Threading Library on some Linux distros
                export LD_ASSUME_KERNEL=2.2.5
                # unset the LD_ASSUME_KERNEL in cause we don't need it
                unset LD_ASSUME_KERNEL
                # check our rules for setting LD_ASSUME_KERNEL
                        linux_LD_ASSUME_KERNEL_hack=1
if [ $linux_LD_ASSUME_KERNEL_hack -eq 1 ]; then
        LD_ASSUME_KERNEL=2.2.5
        export LD_ASSUME_KERNEL <-- 这里有赋值的动作,要用到LinuxThread的线程模式

[xport@ubuntu ~] $

所以说见鬼:“JBuilder 2006默认的安装文件中却还是要使用旧的线程库模式,但Ubuntu Edgy里面已经没有了LinuxThread的实现”!

改变LD_ASSUME_KERNEL的值,我们会得到下面的错误,顺便说一句,我的Java版本是1.5.0_08


[xport@ubuntu ~] $ export LD_ASSUME_KERNEL=2.4.19

[xport@ubuntu ~] $ ls
ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory


那么,要如何来Hack呢?

把整个光盘的内容复制到用户目录中的一个目录中(如~/Temp/JBE2006),操作如下:

[xport@ubuntu ~] $ cd ~/Temp/JBE2006/Disk1/InstDatahttp://Linux.chinaitlab.com/VM

/* 对安装文件进行备份 */

[xport@ubuntu VM] $ mv ./install.bin ./install.bin.borland

/* 把原本安装文件中的LD_ASSUME_KERNEL操作注释掉,并写入新文件 */
[xport@ubuntu VM] $ cat ./install.bin.borland | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > ./install.bin

[xport@ubuntu VM] $ chmod a+x ./install.bin
[xport@ubuntu VM] $ cd ~

/* 请务必改写Shell提示符,以免Install AnyWhere报错 */
[xport@ubuntu ~] $ export PS1="> "

/* 建议用Ubuntu的JDK进行安装 */
> sh ./install.bin LAX_VM /usr/lib/jvm/java-1.5.0-sun/jre/bin/java


这样就可以看到之前在Windows中熟悉的安装向导界面了,直接“下一步,下一步”继续...!

安装完成后,JBuilder 2006如下:


查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章