- 浏览: 572777 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
JamAndVariousAbalone:
存储方式的不同吧。gb_tree是平衡树,list是线性结构。 ...
gb_trees和lists的访问效率相差很大 -
genesislive:
eporf:analyse()写错了,应该改成eprof:an ...
Erlang程序的性能测试工具(1) -
vampirezh:
高手啊 求带 ! 请列出带徒标准
Erlang的未来(2008) -
aiquantong:
great!
rebar工具使用备忘录 (1) -
wccxiaoan:
basho的资源 都没办法打开,不过还是有帮助,谢谢。
关于webmachine
今天重装了ubuntu系统(ubuntu server),发现开发环境几乎是裸的。再重新编译安装erlang需要一些关键库,去年装过,现在又忘了,记之备查。
当然可以用apt-get直接安装erlang,不过版本有些旧而已,本文说的是如何从源代码编译出一个在ubuntu下可用的erlang。
可以用如下命令察看apt安装erlang所依赖的其它库:
sudo apt-get build-dep erlang
不过这里的许多库其实不是必须的,比如openjdk,fop等等。
1. 基础开发工具的安装
指gcc/g++、make
2. 其它Erlang依赖的关键库
基本上安装以上软件后就可以顺利的编译出一个可用的erlang/OTP及其虚拟机了:
缺省情况下,Erlang Home目录是/usr/local/lib/erlang/
缺少的是:
如果还需要以上功能,继续往下看。
3. 老版本的Erlang可能依赖的其它库
现在m4不再是必须的了,老版本的erlang可能需要
sudo apt-get install m4
还有这些,也不是必须的,可能老的版本需要
sudo apt-get install libncursesw5-dev libreadline6-dev
4. 其它不影响erlang源代码编译的非必需软件的安装
4.0 systemtap的支持
首先安装systemtap需要linux内核debug symbols的支持,因此需要重新编译自己的内核。
好在有人为ubuntu-10.xx提供了linux-image-dbgsym的apt安装源,省下了这一步。详见 这篇备忘录
安装好内核dbgsym后,开始安装systemtap和systemtap-sdt-dev:
在编译Erlang/OTP时要指定systemtap
注意如果只装systemtap,没有安装systemtap-sdt-deb会出现如下错误:
configure: error: No dtrace utility found.
4.1. JDK的安装
因为JInterface的编译需要java编译器javac(JInterface是JDK5的, 若缺省JDK低于1.5,make到JInterface时依然会出错)。
JInterface不是必须的,不过要坚持使用的话就需要安装JDK了。有两种安装方法:
ubuntu可以通过apt-get安装,也可以去oracle官方网站下载安装包手工安装。
4.1.1 apt-get安装
很久以前,ubuntu是可以直接apt-get安装java的:
sudo apt-get install sun-java6-jdk
从Ubuntu 10.04开始,apt-get不再缺省提供sun-jdk,需要自己手动为apt添加JDK源
1) 在Ubuntu 10.04中手动添加源:
2) 在Ubuntu 10.10中,手动添加源:
3) 在Ubuntu 11.10中,手动添加源:
完成安装:
4) 在Ubuntu 12.10中,手动添加源:
完成安装:
4.1.2 下载JDK安装包安装
当然也可以去oracle的网站直接下载JDK(需要注册)安装,jrockit和sun的JDK都可以
sun:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
jrockit:
http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html
4.1.3 安装完成后需要为JDK设置环境变量
一般是设置JAVA_HOME和PATH(我习惯在/etc/profile中设置);
JAVA_HOME=/my/path/to/jdk
PATH=$JAVA_HOME/bin:$PATH
注:
安装完jdk后最好检查一下javac,因为新安装的JDK不一定会自动成为缺省的JDK。检查java编译器的版本:
4.2 还有一些其他非关键库
比如关系数据库,图形界面。
sudo apt-get install libc6 (Ubuntu 9.10以后自动带这个,所以不用再装了)
erlang的新GUI工具是基于wxWidgets开发的,因此要使用这些工具必须安装wxWidgets
在ubuntu下安装wx:
注意只有wx也不会顺利的make出支持GUI的erlang/otp,freeglut3-dev也是必须的,否则提示如下错误:
老版本的erlang使用的旧图形工具(如toolbar、appmon、pman、debugger、tv等),都是用的tcl/tk的wish做GUI界面,因此需要安装tk
tk不会影响老版本erlang的编译和安装,但是当在开发中想使用toolbar提供的一系列图形监控工具时就会出现问题。
4.3 生成erlang帮助文档所需要的软件
在R13B03后,要想自动生成帮助文件,需要安装xsltproc和fop:
都挺大的(上百MB),如果不在乎文档,可以不安装,不会影响erlang的make。
5. 安装man手册
官方除了源码包,还提供了man手册的下载,将该man压缩包下载后,解压缩到erlang home目录下,以后可以用erl -man命令察看相关模块的定义和说明了,如察看lists模块:
6. 卸载
缺省情况下,Erlang home目录是/usr/local/lib/erlang/, 直接删掉该目录即可卸载erlang otp。
如果自己设置了ERL_LIBS之类的环境变量,也记得删掉对应的目录。
cryolite不保证blog文章的稳定性,如有时间和需要随时会修改原文。
7. 其它安装方法
7.1 用clang编译erlang
关于clang可以看这里(在 Linux 下使用 clang 3.0 + llvm 3.0 + libc++)的介绍。
ubuntu下有两种clang安装方法
1) 可以apt-get安装clang
然后
2) 也可以去llvm网站下载最新的编译好的官方clang,然后
这样完成配置后就可以make R15B了。
但是R14B04不能成功make,有人在Mac OS X下设置CFLAGS 为 -Qunused-arguments编译成功。但在ubuntu下gcc不支持此参数。。。
我比较了下R14B和R15B的安装说明文档,发现只有后者有提到clang,估计R14B可能官方不支持clang。
理论上clang也能编译R14B的,有人手动修改编译脚本成功完成编译,但编译出的R14B虚拟机运行时似乎有问题,所以我就不折腾R14B的编译了。
7.2. erlang-solutions官方提供的二进制安装包
现在erlang-solutions开始正式提供编译好的Erlang OTP,见这里
提供各种平台(Mac OSX,ubuntu,linux,OpenSUSE,CentOS,Debian)上编译好的各个版本Eralng OTP。
就ubuntu而言,它提供的版本要比ubuntu官方的新,而且发布非常及时,新版erlang OTP刚刚正式发布,二进制的就已经编译好了。
不过它要额外安装一些其他依赖,比如,openjdk、还有GUI gtk,wx什么的,即使是在无GUI的server ubuntu下。
可以apt-get,也可以rpm安装。
当然可以用apt-get直接安装erlang,不过版本有些旧而已,本文说的是如何从源代码编译出一个在ubuntu下可用的erlang。
可以用如下命令察看apt安装erlang所依赖的其它库:
sudo apt-get build-dep erlang
不过这里的许多库其实不是必须的,比如openjdk,fop等等。
1. 基础开发工具的安装
指gcc/g++、make
sudo apt-get install build-essential
2. 其它Erlang依赖的关键库
sudo apt-get install libncurses5-dev sudo apt-get install libssl-dev
基本上安装以上软件后就可以顺利的编译出一个可用的erlang/OTP及其虚拟机了:
./configure && make sudo make install
缺省情况下,Erlang Home目录是/usr/local/lib/erlang/
缺少的是:
- 对systemtap的支持,
- JInterface的支持,
- wx的GUI库(用不了observer),
- ODBC的支持,
- Erlang文档的生成
如果还需要以上功能,继续往下看。
3. 老版本的Erlang可能依赖的其它库
现在m4不再是必须的了,老版本的erlang可能需要
sudo apt-get install m4
还有这些,也不是必须的,可能老的版本需要
sudo apt-get install libncursesw5-dev libreadline6-dev
4. 其它不影响erlang源代码编译的非必需软件的安装
4.0 systemtap的支持
首先安装systemtap需要linux内核debug symbols的支持,因此需要重新编译自己的内核。
好在有人为ubuntu-10.xx提供了linux-image-dbgsym的apt安装源,省下了这一步。详见 这篇备忘录
安装好内核dbgsym后,开始安装systemtap和systemtap-sdt-dev:
sudo apt-get install systemtap systemtap-sdt-dev
在编译Erlang/OTP时要指定systemtap
./configure --with-dynamic-trace=systemtap --enable-vm-probes --enable-native-libs
注意如果只装systemtap,没有安装systemtap-sdt-deb会出现如下错误:
configure: error: No dtrace utility found.
4.1. JDK的安装
因为JInterface的编译需要java编译器javac(JInterface是JDK5的, 若缺省JDK低于1.5,make到JInterface时依然会出错)。
JInterface不是必须的,不过要坚持使用的话就需要安装JDK了。有两种安装方法:
ubuntu可以通过apt-get安装,也可以去oracle官方网站下载安装包手工安装。
4.1.1 apt-get安装
很久以前,ubuntu是可以直接apt-get安装java的:
sudo apt-get install sun-java6-jdk
从Ubuntu 10.04开始,apt-get不再缺省提供sun-jdk,需要自己手动为apt添加JDK源
1) 在Ubuntu 10.04中手动添加源:
sudo apt-add-repository "deb http://archive.canonical.com/ lucid partner"
2) 在Ubuntu 10.10中,手动添加源:
sudo apt-add-repository "deb http://archive.canonical.com/ubuntu maverick partner"
3) 在Ubuntu 11.10中,手动添加源:
sudo add-apt-repository ppa:ferramroberto/java
完成安装:
sudo apt-get update sudo apt-get install sun-java6-jdk
4) 在Ubuntu 12.10中,手动添加源:
sudo add-apt-repository ppa:webupd8team/java
完成安装:
sudo apt-get update sudo apt-get install oracle-java6-installer
4.1.2 下载JDK安装包安装
当然也可以去oracle的网站直接下载JDK(需要注册)安装,jrockit和sun的JDK都可以
sun:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
jrockit:
http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html
4.1.3 安装完成后需要为JDK设置环境变量
一般是设置JAVA_HOME和PATH(我习惯在/etc/profile中设置);
JAVA_HOME=/my/path/to/jdk
PATH=$JAVA_HOME/bin:$PATH
注:
安装完jdk后最好检查一下javac,因为新安装的JDK不一定会自动成为缺省的JDK。检查java编译器的版本:
javac -version
4.2 还有一些其他非关键库
比如关系数据库,图形界面。
sudo apt-get install libc6 (Ubuntu 9.10以后自动带这个,所以不用再装了)
sudo apt-get install unixodbc unixodbc-dev ODBC方式提供对传统关系数据库支持
erlang的新GUI工具是基于wxWidgets开发的,因此要使用这些工具必须安装wxWidgets
在ubuntu下安装wx:
sudo apt-get install freeglut3-dev libwxgtk2.8-dev
注意只有wx也不会顺利的make出支持GUI的erlang/otp,freeglut3-dev也是必须的,否则提示如下错误:
Can not link the wx driver, wx will NOT be useable
老版本的erlang使用的旧图形工具(如toolbar、appmon、pman、debugger、tv等),都是用的tcl/tk的wish做GUI界面,因此需要安装tk
sudo apt-get install tk8.5
tk不会影响老版本erlang的编译和安装,但是当在开发中想使用toolbar提供的一系列图形监控工具时就会出现问题。
4.3 生成erlang帮助文档所需要的软件
在R13B03后,要想自动生成帮助文件,需要安装xsltproc和fop:
sudo apt-get install xsltproc sudo apt-get install fop
都挺大的(上百MB),如果不在乎文档,可以不安装,不会影响erlang的make。
5. 安装man手册
官方除了源码包,还提供了man手册的下载,将该man压缩包下载后,解压缩到erlang home目录下,以后可以用erl -man命令察看相关模块的定义和说明了,如察看lists模块:
erl -man lists
6. 卸载
缺省情况下,Erlang home目录是/usr/local/lib/erlang/, 直接删掉该目录即可卸载erlang otp。
如果自己设置了ERL_LIBS之类的环境变量,也记得删掉对应的目录。
cryolite不保证blog文章的稳定性,如有时间和需要随时会修改原文。
7. 其它安装方法
7.1 用clang编译erlang
关于clang可以看这里(在 Linux 下使用 clang 3.0 + llvm 3.0 + libc++)的介绍。
ubuntu下有两种clang安装方法
1) 可以apt-get安装clang
sudo apt-get install clang
然后
CC=clang CXX=clang ./configure
2) 也可以去llvm网站下载最新的编译好的官方clang,然后
CC=/path/to/clang+llvm-3.0/bin/clang CXX=/path/to/clang+llvm-3.0/bin/clang ./configure
这样完成配置后就可以make R15B了。
make sudo make install
但是R14B04不能成功make,有人在Mac OS X下设置CFLAGS 为 -Qunused-arguments编译成功。但在ubuntu下gcc不支持此参数。。。
我比较了下R14B和R15B的安装说明文档,发现只有后者有提到clang,估计R14B可能官方不支持clang。
理论上clang也能编译R14B的,有人手动修改编译脚本成功完成编译,但编译出的R14B虚拟机运行时似乎有问题,所以我就不折腾R14B的编译了。
7.2. erlang-solutions官方提供的二进制安装包
现在erlang-solutions开始正式提供编译好的Erlang OTP,见这里
提供各种平台(Mac OSX,ubuntu,linux,OpenSUSE,CentOS,Debian)上编译好的各个版本Eralng OTP。
就ubuntu而言,它提供的版本要比ubuntu官方的新,而且发布非常及时,新版erlang OTP刚刚正式发布,二进制的就已经编译好了。
不过它要额外安装一些其他依赖,比如,openjdk、还有GUI gtk,wx什么的,即使是在无GUI的server ubuntu下。
可以apt-get,也可以rpm安装。
评论
3 楼
wrj913
2011-11-24
我菜鸟一个,哪里有详细的文档,给一个,谢谢
2 楼
cryolite
2009-06-15
在线安装sun的jdk,Erlang的JInterface需要这个才能build
1 楼
langzhe
2009-06-12
兄弟看到你写的了,简单明了。能否解释一下,我有点不全明白什么意思?
我也在装ERLANG 以前装的时候是从网上自动装的,现在发现有部分内容没有装上,如:gs 就没有装上。安照您说的方法试了一边。但是不明白你“sudo apt-get install sun-java6-jdk JInterface编译需要这个 ”执行此语句是什么意思呢?
我也在装ERLANG 以前装的时候是从网上自动装的,现在发现有部分内容没有装上,如:gs 就没有装上。安照您说的方法试了一边。但是不明白你“sudo apt-get install sun-java6-jdk JInterface编译需要这个 ”执行此语句是什么意思呢?
发表评论
-
静态链接与动态链接
2014-09-06 03:24 1498基于gmp开发第三方库,后者以动态链接库(静态库?)对方式发布 ... -
在macbook上安装linux
2014-06-12 10:29 22251. 安装最新的rEFInd > 0.8.2 http: ... -
关于nif
2013-08-19 10:28 4988一、NIF的误用问题 使用NIF是很危险的,一不小心它就会搞 ... -
遇到的riak性能问题
2013-07-23 10:59 23571。 遇到一个奇怪的性能问题,多个进程中用riakc_pb_ ... -
dialyzer使用备忘
2013-07-04 12:36 1594一、构建PLT文件: 新构建 dialyzer --build ... -
手工从源码制作一个riak安装包
2013-06-22 18:47 1612riak的Makefile文件提供了各个平台上的安装包的生成脚 ... -
folsom_metrics使用备忘
2013-06-07 15:41 1427folsom是一个通用的统计度量工具。使用很简单,关键是搞清它 ... -
git 库永久删除大文件
2013-01-08 11:49 4638无意中把一个装有很多大文件数据的文件夹(./my1202260 ... -
Riak Core与folsom
2012-09-01 11:54 1442folsom是Riak从1.2开始引入。 -
关于Erlang/OTP的application参数配置
2012-08-26 23:27 9032Erlang/OTP中将完成特定功能的一组模块组织起来,称之 ... -
rebar工具使用备忘录 (5)
2012-08-23 18:17 1446haogongju、人人IT网、59n南龙、360doc、as ... -
lager的使用
2012-08-23 15:06 10456haogongju、人人IT网、59n南龙、360doc不要抄 ... -
rebar工具使用备忘录 (4)
2012-08-22 19:20 5565haogongju、人人IT网、59n南龙、360doc、as ... -
rebar工具使用备忘录 (3)
2012-08-22 19:18 1255haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (9) cheatsheet
2012-08-12 12:58 1631haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (8)
2012-08-11 18:52 1207haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (7)
2012-08-10 18:15 1307haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (6) HTTP接口
2012-08-09 16:16 1497haogongju,人人IT网,360do ... -
对Riak Core的探索 (5) 业务逻辑的实现:数据如何处理
2012-08-07 18:18 1604业务逻辑的实现:数据 ... -
对riak_core的探索 (5) webmachine
2012-08-07 17:49 0人人IT网不要抄我的烂博客了,私人备忘用的。
相关推荐
6,安装失败,你骂我好了,并把你的ubunt版本、是否是在虚拟机和其下的虚拟机软件名称和版本与再其下的os名称和版本、硬件(cpu、memory、Mainboard、disk)等信息email给我,我帮你找能用的版本。 软件相关信息: ...
Erlang 新的语言,配套资料的源代码,可以操练一下。
erlang并发编程实战源代码erlang并发编程实战源代码
编译的ERLANG使用MYSQL的beam文件~~也包括源文件
[Erlang程序设计]源代码,包括了erlang程序设计一书全部实例代码;
二郎助手,专为erlang语言开发的开发工具。完全免费,源代码开源(VS2005开发)。
erlang_20.3.6_ubuntu_trusty_amd64.deb,安装rabbmitmq需要用到
erlang源码安装包,此安装包是linux环境下的;erlang的版本是5.10.3
centos6下离线安装erlang所需要的所有rpm包,亲测可用。
看到另外两个分好高,我把另外两个二合一啦。远古封神+英雄远征的ERLANG游戏服务器代码,看过了,感觉不错的。
erlang官方没有龙芯版本的安装包,这个是用24版本的源码在龙芯3a5000下编译的版本,解压缩以后将bin路径加入PATH环境变量即可使用。
Erlang B星寻路算法源代码 B*寻路算法源代码, 由C++改写而来。效率是A星算法的几十倍到上百倍。做为服务端怪物寻路的最佳选择。
Joe Armstrong [Erlang程序设计].中文版 和随书源代码 一本不错的Erlang学习书籍!
kmp游戏中使用频率较高,所以用erlang代码代码实现,效率还行。
arm架构的系统安装rabbitmq,需要编译安装erlang,编译安装,就需要一些rpm的依赖包
Linux下傻瓜式安装erlang
良心2分拿走! 如题,RabbitMQ 3.8.9 windows安装包,以及运行环境erlang的安装包。...再到RabbitMQ安装目录下启动cmd,运行“rabbitmq-plugins enable rabbitmq_management” 浏览器输入“localhost:15672”,确认成功
离线安装erlang时,需要的帮助包,解压可用,不过自己没测过
我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的答案,下面是已完成的erlang源代码,后续有空再做其他问题续传,题目包含:(源码开头都有题目...
Erlang 运行环境的安装文件,Erlang 运行环境的安装文件.