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

Java-ICE入门教程(2-1:ICE基础知识) 1、ICE是什么?  ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个面向对象的中间件,使我们能够以最小的代价构建分布式应用程序。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给我带来的便捷了。

本文出自:冯立彬的博客




WebRTC搭建与应用(一)-ICE服务搭建 之前工作主要集中于桌面端和前端的轻量化图形渲染与数据组织,服务端相关技术主要是接口调用,没有什么技术积累,本次搭建工作属于摸着石头过河。最开始在本地测试WebRTC点对点传输没有任何问题,但是跨电脑测试时会提示ICE失败,所以还是得研究一下什么是ICE。STUN(Session Traversal Utilities for NAT)即网络地址转换会话穿越应用程序。STUN提供了一种方式使一个端点能够确定NAT分配的和本地私有IP地址和端口相对应的公网IP地址和端口以及NAT的类型信息。 阅读详情

相关推荐

iceoryx:iceoryx-真正的零副本进程间通信

iceoryx:iceoryx-真正的零副本进程间通信

ICE can't open include file

如果Slice文件中有include其他.ice文件,用slice2java --output-dir 在编译的时候报 can't open include file。将命令改为slice2java -I. --output-dir就可以了

summer85的博客 793

VCSA 6.7证书过期别慌!手把手教你通过SSH修改系统时间恢复登录(附STS证书修复脚本)

本文详细介绍了VCSA 6.7证书过期的应急处理方案,包括通过SSH修改系统时间临时恢复登录、全面更新证书体系以及专项修复STS证书的实战步骤。文章还提供了后期验证和系统加固的建议,帮助运维人员有效应对证书过期问题,确保虚拟化平台的稳定运行。

weixin_31292729的博客 415

ice java 开发_开发zeroc ice应用入门(java开发ice应用,python开发ice应用,java与python结合开发ice服务)...

ice作为一种rpc框架,为主流平台设计,包括Windows和Linux,支持广泛的语言,包括C++,Java,C#(和其他.Net的语言,例如Visual Basic),Python,Ruby,PHP和ActionScript。安装ice2.安装程序,本文安装位置E:\Program Files\ZeroC\Ice-3.6.33.配置环境变量计算机->属性->高级系统设置->环...

weixin_31486289的博客 539

双斜率积分ADC:高精度测量中的经典选择与TC530/TC534实战指南

模数转换器(ADC)是连接模拟世界与数字系统的关键桥梁,其核心任务是将连续的模拟信号转换为离散的数字量。在众多ADC类型中,双斜率积分ADC以其独特的原理脱颖而出,它通过积分与反积分的线性过程,用时间换取精度,实现了对噪声的卓越抑制和极高的线性度。这种技术价值使其在对抗工频干扰、追求长期稳定性的场景中无可替代,尤其适用于精密测量仪表和工业传感器信号采集。本文聚焦于双斜率积分ADC的经典代表TC530与TC534,深入剖析其工作原理、关键参数如积分电阻、积分电容的选择,并提供从硬件电路设计到软件驱动的完整实战

weixin_30847063的博客 358

机器学习的学习准则(期望风险最小化、经验风险最小化、结构风险最小化)

要评价模型f(x, θ)的好坏,可通过期望风险R(θ)来衡量:求期望损失R(θ)不仅需要知道损失函数还需要知道真实分布,损失函数可以通过一定的准则计算得到,但是样本空间的真实分布是未知的。所以不能直接求R(θ)。期望风险R(θ)无法计算,给定一个训练集D =,我们可以计算经验风险,经验风险就是在训练集上的平均损失:为了解决过拟合问题,引入了参数正则化来限制模型的能力。使其不要过度的最小化经验风险。这种准则就是结构风险最小化准则

... 2222

使用zeroc ice框架java快速入门(下载的Ice-3.6.4mis安装后有demo)

一. 准备工作 1.下载ice3.6 官网下载地址http://download.zeroc.com/Ice/3.6/Ice-3.6.4.msi 下载后点击安装即可 2. 配置环境 想必大家如果要用到ice,配置环境都是小菜一碟了,这里也就不多赘述,网上百度一堆. ICE_HOME= C:\ZeroC\Ice-3.6.4 Path= %ICE_HOME%\bin; cmd命令输入slice2java -v ,如果显示3.6.4代表配置ok 3. 编译插件slice2java ICE因为支持多种..

qq_19688207的博客 952

S32K3 eMIOS使用介绍(PWM输出与输入捕获)——基于MCAL

本文基于 S32K3xx系列芯片、S32 Design Studio for S32 Platform开发平台以及EB tresos 28.0.0、 MCAL层,介绍pwm的输出及输入捕获。

HeFlyYoung的博客 2万+

centos7 下Ice安装

Ice(Internet Communications Engine)是一款先进的、跨平台的中间件框架,旨在简化复杂网络程序的开发和部署。由ZeroC公司开发,Ice支持多种编程语言和平台,被广泛应用于分布式系统的构建,尤其适用于需要高性能和语言多样性的环境。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 2758

Qt Installer Framework 简单使用

qt installer framework 简单使用

qq_42815643的博客 2574

Xinference新手指南(一个命令直接安装成功)

对于新手,必须得学会使用docker部署,这是基本功!这里就不过多去介绍了,如果评论要出教程的话,以后再出了。

Ven%的博客 817

WINDOWS下面使用ICE操作记录

WINDOWS下面使用ICE操作记录

fdyufgf的博客 242

FX5U PLC运动控制库安装(PLCopen Motion Control FB参考)

下面我们介绍三菱FX5U PLC的运动控制库PLCopen Motion Control FB的安装。

RXXW_Dor的博客 1523

linux ice3.7编译安装,Ubuntu安装ICE 3.4.2记录

安装Ice3.4.2之前,应该下载并安装其依赖库。经过了n此安装失败后,最后终于弄好了。两个字,苦逼。具体过程如下:在Source Distributions一栏下下载源文件:Ice-3.4.2.tar.gz;在Third-Party Source Code 一栏下选择ThirdParty-Sources-3.4.2.tar.gz第三方压缩包下载。2. 安装第三方依赖库解压ThirdParty-S...

weixin_32938207的博客 619

分布式系统中的“无状态”和“有状态”详解

有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如 tomcat 中的 session。例如登录:用户登录后,我们把登录者的信息保存在服务端 session 中,并且给用户一个 cookie 值,记录对应的 session。然后下次请求,用户携带 cookie 值来,我们就能识别到对应 session,从而找到用户的信息。

AI天才研究院 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ubuntu安装ICE记录

背景本文档介绍在unbuntu环境下如何安装ICE,并用C++写一个ICE应用 ICE简介ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个流行的面向对象的工具包,使我们能够以最小的代价构建分布式应用程序。ICE使我们专注于应用逻辑的开发,它来处理所有底层的网络接口编程,这样我们就不用去...

weixin_34018202的博客 227

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Ubuntu安装ICE 3.4.2记录

Ubuntu安装ICE 3.4.2记录 [日期:2011-09-05] 来源:Linux社区 作者:moxiaomomo [字体:大 中 小] 安装Ice3.4.2之前,应该下载并安装其依赖库。经过了n此安装失败后,最后终于弄好了。两个字,苦逼。具体过程如下:  1. 下载第三方包和Ice源文件:http://www.zeroc.com/download.

Drblue的专栏 891

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ubuntu安装Ice-3.4.2记录

安装Ice3.4.2之前,应该下载并安装其依赖库。经过了n此安装失败后,最后终于弄好了。两个字,苦逼。具体过程如下:   1. 下载第三方包和Ice源文件:http://www.zeroc.com/download.html(官方下载页面)     在Source Dist

moxiaomomo的专栏 4153
上一篇: 理解Java类加载原理
下一篇: 关于DEDECMS程序严重漏洞的紧急通知
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值