`
javayestome
  • 浏览: 1041138 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

UBUNTU下面安装ICE失败记录过程

阅读更多

ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个流行的面向对象的工具包,使我们能够以最小的代价构建分布式应用程序。ICE使我们专注于应用逻辑的开发,它来处理所有底层的网络接口编程,这样我们就不用去考虑这样的细节:打开网络连接、网络数据传输的序列化与反序列化、连接失败的尝试次数等。
这篇文章只是记载了在UBUNTU下面安装ICE的失败的过程,但是这里的失败并不是什么都没有安装好,最终影响到ICE的在JAVA中使用是ORACLE的Berkeley DB安装时,指定参数"--enable-java",会报这样的错误:checking if java works... configure: error: The Java VM java failed (see config.log, check the CLASSPATH?),我这里尝试了多种解决方案,最终没有在UBUNTU下面成功安装Berkeley DB,但是要使用slice2java,必须要在安装Berkeley DB时指定参数"--enable-java",所以就差这一步没有能够在UBUNTU下面使用slice2java,这个问题后面再尝试解决。

1、因为ICE没有已经编译好的UBUNTU安装包,只有WINDOWS及部分LINUX(如REDHAT、SuSE、MacOS X及Solaris)平台的安装包,要在UBUNTU上面使用,只有下载其源码重新编译后再安装。下载ice的源码,下载页面:http://www.zeroc.com/download.html,选择Source Distributions下面的源码进行下载,目前的版本是3.4.1,下载地址是http://www.zeroc.com/download/Ice/3.4/Ice-3.4.1.tar.gz
2、要安装其它版的ICE必需要先安装C++版本的ICE,因为其它版本安装时要调用这些链接库,通过命令:
tar -xf Ice-3.4.1.tar.gz
将它解压缩后,进入它的cpp目录,执行编译:
make
报错如下:
ConnectionI.cpp:28:19: error: bzlib.h: 没有那个文件或目录
查看其安装说明,需要依赖如下软件:
Berkeley DB http://www.oracle.com/database/berkeley-db/index.html
expat http://expat.sourceforge.net
OpenSSL http://www.openssl.org
bzip2 http://sources.redhat.com/bzip2
mcpp http://mcpp.sourceforge.net
猜想,应该依赖的软件没有安装,于是把上面列出来的依赖软件,除Berkeley DB以外都安装或升级了一下:
sudo apt-get install expat
sudo apt-get install openssl
sudo apt-get install bzip2
sudo apt-get install libmcpp-dev (必须要安装dev版,否则有问题,如这个贴子:http://www.zeroc.com/forums/help-center/5192-building-ice-source-ubuntu-10-10-a.html)
还是报上面的错误,于是再搜索,从这个贴子http://www.zeroc.com/forums/help-center/1815-instalation-error.html得知需要安装bzip2的开发版:libbz2-dev
于是安装:
sudo apt-get install libbz2-dev
这下上面的错误没有了,但出现了新的错误:
Parser.cpp:13:19: error: expat.h: 没有那个文件或目录
这个我猜应该也是需要安装开发版的原因吧,从网上搜索,在这里得到了答案:http://www.douban.com/group/topic/3018699/,安装开发版:
sudo apt-get install libexpat-dev
我FUCK,上面的问题没有了,又来一个:
../IceSSL/UtilF.h:17:25: error: openssl/ssl.h: 没有那个文件或目录
看来需要安装ICE的C++版,这些依赖的软件全部都得使用开发版了:
sudo apt-get install libssl-dev
再次执行make操作,再报错如下:
../Freeze/ObjectStore.h:62: error: ISO C++ forbids declaration of ‘Db’ with no type
../Freeze/ObjectStore.h:62: error: expected ‘;’ before ‘*’ token
这个错误应该是没有安装Berkeley DB的原因,于是乎再按下面的步骤安装Berkeley DB4.8。

3、安装Berkeley DB4.8
1)、下载源码RPM包,并解压;
2)、linux安装进入到build_unix目录,执行配置命令:../dist/configure --enable-java (根据ICE的JAVA安装版的说明,在linux环境下需要加上--enable-java参数)
此时报如下错误:
checking if java works... configure: error: The Java VM java failed (see config.log, check the CLASSPATH?)
解决步骤:
A)、检查JAVA的环境配置,执行java-version及javac -version都显示正常;
B)、单独编译当前目录下生成的Test.java:javac Test.java,执行成功,说明不明JDK本身的问题;
看它的UNIX安装指南:
The Berkeley DB distribution uses the Free Software Foundation's autoconf and libtool tools to build on UNIX platforms. In general, the standard configuration and installation options for these tools apply to the Berkeley DB distribution.
中提到有libtool及autoconf,于是再安装libtool及autoconf:
C)、安装libtool:sudo apt-get install libtool,再执行配置命令,显示同样的错误;
D)、安装autoconf:sudo apt-get install autoconf,再执行配置命令,显示同样的错误;
E)、将/usr/bin/libtool:/usr/bin/autoconf增加到CLASHPATH中,执行source .bashrc后再执行配置命令,显示同样的错误;
F)、根据错误提示,网上查询,有人反馈这是JDK6的BUG,因为JDK5下面可以操作成功(http://linuxfromscratch.org/pipermail/blfs-dev/2008-March/018363.html),于是重新下载JDK6-UPDATE25版本替换我现在使用的JDK6-UPDATE20,还是报相同的错误;
G)、换JDK的版本build 1.5.0_22-b03,再执行配置命令,还是报相同的错误,那说明不是JDK的问题;
我快疯了,没有办法了,现在只有先去掉参数“--enable-java”,否则后面的就没有办法继续了,待以后想明白了再继续,没有这个参数就可以正常编译及安装了,难道这个真的是JDK的BUG?!。
3)、重新编译只需要在当前目录下执行如下命令:
make clean
make
make install
如果是想改变配置,执行如下命令:
make realclean
../dist/configure
make
make install
4)、卸载BDB:
make uninstall

4、再次继续上面第2中的操作,执行make,报如下错误:
../Freeze/TransactionI.h:15:20: error: db_cxx.h: 没有那个文件或目录
从这里http://www.zeroc.com/forums/help-center/4560-install-ice-3-3-1-gentoo-system.html看到,是安装BDB的时候参数设置不正确,需要加上参数"enable-cxx",于是再通过以下配置BDB:
../dist/configure enable-cxx
及编译安装操作
make clean
make
make install
再次执行ICE的CPP编译make时,还是报同样的错误
这个时候查看文件:cpp/config/Make.rules时,发现其中有一个变量$(DB_HOME),这个应该是BDB的安装路径的全局环境变量,查看BDB下面的configure文件,它的默认安装目录是/usr/local/BerkeleyDB.4.8,
于是在我的用户路径根目录下面的配置文件.bashrc中增加这个环境变量:
export DB_HOME=/usr/local/BerkeleyDB.4.8
再把它的bin目录增加到PATH中,增加下面这个到PATH后面:
:$DB_HOME/bin
使配置生效:
source .bashrc
这个时候需新开一个会话窗口,再转到ICE的CPP目录下面,再次执行make命令,终于跑起来了,完成后,再执行一下make install就安装成功了

5、此时安装JAVA版的ICE了,此时需要将ICE的安装目录设置到全部变量中,在.bashrc中增加:
export ICE_HOME=/opt/Ice-3.4.1
并将bin目录增加到PATH中:
:$ICE_HOME/bin
将$DB_HOME/lib增加到CLASSPATH中
1)、这里我只需要生成Ice.jar,编译是基于ant的,在java目录下面执行:
ant ice-jar
即生成Ice.jar在当前的lib目录下面。
2)、如果是要生成与Freeze及IceGrid管理控制台一起使用的ICE,使用下面的命令:
ant jar
不过这时需要安装这两个软件:
JGoodies http://www.jgoodies.com/downloads/libraries.html
ProGuard http://proguard.sourceforge.net
3)、如果需要生成包括测试及示例程序的完整源包,采用如下命令:
ant
详细的参见当前目录下的INSTALION文件,其中有说明。

6、使用slice2java
在命令行打入命令slice2java,报如下错误:
slice2java: error while loading shared libraries: libSlice.so.34: cannot open shared object file: No such file or directory
这里有答案:http://www.zeroc.com/forums/help-center/870-slice2java-command.html
不过在ICE的cpp的LINUX安装说明文件中也有这样的说明:
LD_LIBRARY_PATH environment variable to add the "lib" directory
自己大意了,在.bashrc中增加如下:
export LD_LIBRARY_PATH=/opt/Ice-3.4.1/lib
并执行:
source ~/.bashrc
再次打入slice2java命令就可以出现帮助信息了。

7、本以为一切都OK了,可是当我通过执行:
slice2java A.ice
时,报error: Can't open include file "Ice/BuiltinSequences.ice"这样的错误,这个帖子http://www.zeroc.com/forums/help-center/4134-unable-compile-ice.html有说明是因为没有将BDB的db.jar放到环境变量中,这个又使我郁闷了,我的BDB安装的时候,根本就不能够指定参数“--enable-java”,这个bd.jar根据就不存在,我靠,看来我只有选择使用WINDOWS的安装文件,享受MS给我带来的便捷了。

分享到:
评论

相关推荐

    Ubuntu-zeroc-ice 环境安装

    在Ubuntu系统上安装Zeroc-ICE环境主要涉及以下知识点: 1. Ubuntu虚拟机的安装:用户需要在计算机上安装一个虚拟机软件,比如VirtualBox或者VMware,然后在虚拟机中安装Ubuntu操作系统。这一步骤是为了创建一个独立...

    Ubuntu 16.04 SSH安装失败的解决方案.txt

    然而,在实际部署过程中,有时会遇到Ubuntu 16.04系统中SSH安装失败的问题。 #### 安装失败常见原因分析 SSH安装失败通常由以下几个方面的原因引起: 1. **网络问题**:网络连接不稳定或存在限制,导致无法从...

    Ubuntu 11.10 安装方法全程记录

    Ubuntu 11.10 安装方法全程记录

    ubuntu下面安装oracle

    ubuntu下面安装oracle。包含了从jdk,ftp,ssh,oracle的安装。非常详细。手工整理。并且同机器安装双系统

    Ubuntu安装教程.zipUbuntu安装教程

    ubuntu20.04安装教程:Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装教程Ubuntu安装...

    ubuntu20.04安装教程-ubuntu20.04图文安装教程.pdf

    ubuntu:ubuntu20.04图文安装教程ubuntu20.04图文安装教程ubuntu20.04图文安装教程ubuntu20.04图文安装教程ubuntu20.04图文安装教程ubuntu20.04图文安装教程ubuntu20.04图文安装教程ubuntu20.04图文安装教程ubuntu...

    ubuntu+11.10+安装过程详解

    在本篇【ubuntu 11.10 安装过程详解】中,我们将详细探讨如何在虚拟环境中安装 Ubuntu 11.10 操作系统,包括使用 VMware 和 VirtualBox 两种虚拟机软件的步骤。 首先,我们看到的是使用 VMware 进行安装的过程。...

    Ubuntu离线安装软件的方法

    到此,本地源目录就算是完成了,下面我们就可以在ubuntu中安装软件了。 当我们需要安装软件时,我们可以使用apt-get方法,但是我们需要先生成要安装的软件的下载脚本。我们可以使用File -> Generate package ...

    ubuntu离线安装telnet

    ubuntu离线安装telnet,ubuntu,离线,telnet包

    ubuntu20.04安装QT.pdf

    ubuntu20.04安装QT 一、 安装cmake 二、 安装gcc和g++ 三、 下载QT 四、 安装QT 五、 故障解决

    Ubuntu的安装-实验报告.pdf

    本实验报告主要介绍了 Ubuntu 的安装过程,并对实验结果进行了分析和总结。实验的主要目的为掌握 Linux 操作系统的安装与配置,以及掌握 Linux 下软件的安装与运行。 一、 实验步骤 在实验中,我们首先下载了 ...

    linux Ubuntu下安装 Source insight

    "Linux Ubuntu下安装Source Insight" Linux Ubuntu下安装Source Insight是指在Ubuntu操作系统下安装Source Insight软件,从而实现在Linux平台下使用Source Insight编辑和阅读源码。本文将详细介绍如何在Ubuntu下...

    Ubuntu12.04 安装wxWidgets

    Ubuntu下安装wxWidgets

    ERPNext安装-ubuntu安装

    Ubuntu ERPNext ubuntu安装 ubuntu安装 ubuntu安装 ubuntu安装 ubuntu安装

    Linux下安装ICE包

    在Linux操作系统中,安装ICE(Integration and Communication Environment)包是一个重要的任务,特别是在开发分布式系统或者进行跨平台通信时。ICE是一种高性能、灵活且易于使用的中间件,它允许应用程序通过网络...

    【Linux】Ubuntu18.04安装过程记录

    下面开始储备解决计算机中99%疑难杂症的技能~~ 1 首先下载系统并烧录到U盘: 1.1 下载链接: http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso 1.2 烧录软件:rufus 选择如下: 原创文章 96获...

    ubuntu怎么安装tar.gz

    在Ubuntu系统中,安装软件的...总的来说,Ubuntu提供了多种安装软件的方法,新立得软件包管理器简化了安装过程,尤其适合初学者。而了解如何手动编译和使用命令行工具安装软件,则能让你更好地理解和掌控Linux系统。

    Windows下Ubuntu安装程序

    本篇将详细讲解使用Wubi.exe来在Windows环境下轻松安装Ubuntu的过程。 **一、Wubi.exe是什么?** Wubi是Ubuntu官方提供的一种在Windows上安装Ubuntu的便捷工具,它允许用户无需重新分区或创建启动媒体,直接在...

    ubuntu16.04安装chrome浏览器(附安装步骤)

    在Ubuntu 16.04操作系统中安装Google Chrome浏览器的过程涉及几个关键步骤,因为Chrome并不在Ubuntu的默认软件仓库中。以下是一个详细的指南,帮助您完成这个任务。 首先,我们需要获取Google Chrome的.deb安装包。...

Global site tag (gtag.js) - Google Analytics