- 浏览: 581575 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1558基于gmp开发第三方库,后者以动态链接库(静态库?)对方式发布 ... -
在macbook上安装linux
2014-06-12 10:29 22861. 安装最新的rEFInd > 0.8.2 http: ... -
关于nif
2013-08-19 10:28 5154一、NIF的误用问题 使用NIF是很危险的,一不小心它就会搞 ... -
遇到的riak性能问题
2013-07-23 10:59 24291。 遇到一个奇怪的性能问题,多个进程中用riakc_pb_ ... -
dialyzer使用备忘
2013-07-04 12:36 1643一、构建PLT文件: 新构建 dialyzer --build ... -
手工从源码制作一个riak安装包
2013-06-22 18:47 1660riak的Makefile文件提供了各个平台上的安装包的生成脚 ... -
folsom_metrics使用备忘
2013-06-07 15:41 1483folsom是一个通用的统计度量工具。使用很简单,关键是搞清它 ... -
git 库永久删除大文件
2013-01-08 11:49 4713无意中把一个装有很多大文件数据的文件夹(./my1202260 ... -
Riak Core与folsom
2012-09-01 11:54 1506folsom是Riak从1.2开始引入。 -
关于Erlang/OTP的application参数配置
2012-08-26 23:27 9148Erlang/OTP中将完成特定功能的一组模块组织起来,称之 ... -
rebar工具使用备忘录 (5)
2012-08-23 18:17 1505haogongju、人人IT网、59n南龙、360doc、as ... -
lager的使用
2012-08-23 15:06 10563haogongju、人人IT网、59n南龙、360doc不要抄 ... -
rebar工具使用备忘录 (4)
2012-08-22 19:20 5620haogongju、人人IT网、59n南龙、360doc、as ... -
rebar工具使用备忘录 (3)
2012-08-22 19:18 1318haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (9) cheatsheet
2012-08-12 12:58 1685haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (8)
2012-08-11 18:52 1260haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (7)
2012-08-10 18:15 1356haogongju、人人IT网、59n南龙、360doc不要抄 ... -
对Riak Core的探索 (6) HTTP接口
2012-08-09 16:16 1547haogongju,人人IT网,360do ... -
对Riak Core的探索 (5) 业务逻辑的实现:数据如何处理
2012-08-07 18:18 1661业务逻辑的实现:数据 ... -
对riak_core的探索 (5) webmachine
2012-08-07 17:49 0人人IT网不要抄我的烂博客了,私人备忘用的。
相关推荐
1. **获取源代码**:你需要找到Erlang MySQL客户端库的源代码。这可能是从GitHub或其他开源代码托管平台下载的。例如,`mysql-erlang`或`emysql`是两个常见的选择。 2. **环境准备**:确保你的系统上已经安装了...
- 如果目标机器无法执行`apt-get`命令,可能是因为缺少必要的软件包管理器,这时需要考虑使用其他方法,如手动编译源代码安装iperf3。 - 在网络受限环境中,定期更新系统和软件包是必要的,但离线环境下这需要额外的...
2. **配置Emacs和Distel**:在Linux中,你可以使用系统提供的Emacs,也可以选择从源代码编译最新版本。安装完成后,将Distel的源代码克隆或下载到你的`~/.emacs.d`目录下,然后在你的`.emacs`配置文件中添加与...
如果从源代码编译,需要先安装依赖,然后解压源码,配置并编译安装。 - **macOS**:使用 Homebrew(一个包管理器)可以通过 `brew install erlang` 命令安装。 4. **验证安装**:安装完成后,打开终端(Windows 上...
对于ARM架构的服务器,通常需要手动编译Erlang源代码,因为预编译的二进制包可能不适用于所有ARM平台。这里我们有一个名为`otp_src_26.1.2`的文件,这是Erlang/OTP(Open Telephony Platform)的源代码包,版本为...
在Erlang的版本管理中,`kerl`是一个方便的工具,用于构建、安装和管理Erlang/OTP(Open Telecom Platform)的源代码版本。标签"erlang"表明讨论的核心是Erlang语言本身。文件名"otp_src_25.1"代表了OTP的源代码包,...
接着,你可以下载Erlang的源代码包,同样通过编译安装的方式,并在配置阶段指定`ncurses`库的位置。确保在编译Erlang时,编译器能够找到`ncurses`的头文件和库文件。 安装Erlang的过程可能因版本不同而略有差异,但...
5. **解压Erlang源代码**:使用tar命令解压源代码: ``` tar -zxvf otp_src_20.1.tar.gz ``` 6. **编译与安装**:进入解压后的源代码目录,配置并编译Erlang: ``` cd otp_src_20.1 ./configure make ...
Erlang的编译和安装过程需要几个步骤,首先是解压下载好的源代码包,然后进入源代码目录进行配置,使用configure命令检测系统环境,并准备编译。接下来是编译源代码,通过make命令完成。最后,通过执行make install...
Erlang MQTT消息服务器v1.1 beta for Ubuntu是一个基于Erlang编程语言构建的高性能、高可用性的MQTT(Message Queuing Telemetry Transport)消息代理,专为Ubuntu操作系统设计。MQTT是一种轻量级的发布/订阅消息...
下载并解压`otp_src_21.2.tar.gz`后,进入源代码目录,然后按照官方文档的指导进行配置、编译和安装: ```bash tar -xvf otp_src_21.2.tar.gz cd otp_src_21.2 ./configure make sudo make install ``` 安装完成后...
2. **Linux系统**:Linux是一种自由和开放源代码的类Unix操作系统内核,许多流行的发行版如Ubuntu、CentOS、Debian等都是基于Linux内核。在ARM64设备上,也有相应的Linux发行版提供支持。 3. **RabbitMQ依赖**:...
进入解压后的Thrift源代码目录,执行以下命令来配置和编译Thrift: - `./bootstrap.sh`(如果项目没有提供configure文件) - `./configure` - `make` - `sudo make install` 5. **生成语言绑定** 编译完成后...
而"emqttd"目录则包含了EMQTT服务器的源代码和其他相关文件,用户可以根据这些源代码进一步了解EMQTT的工作原理,或者进行定制化开发。 总的来说,EMQTT v1.1.3 beta for Ubuntu提供了在Ubuntu系统上部署和运行MQTT...
`make-4.3-arm64`是`make`工具的一个特定版本,它是编译源代码时不可或缺的一部分,用于根据`Makefile`来自动执行构建过程。 在这个场景下,我们要做的是在ARM64架构的Linux系统上离线安装RabbitMQ。首先,我们需要...
4. **编译时问题**:如果MySQL是从源代码编译安装的,而编译时没有正确指定或链接到`libtinfo.so.5`,也会导致这个问题。 为了解决这个问题,可以尝试以下步骤: 1. **安装库**:使用包管理器(如`apt-get`或`yum`...
"易采源码下载.url"可能是一个链接,指向源代码的下载页面,方便开发者获取源代码进行定制或二次开发;"emqttd"目录包含了服务器的二进制文件和配置文件;"易采源码下载说明.txt"可能提供了额外的源码下载和编译指导...
综上所述,这个“rabbitmq.rar”压缩包可能是为了帮助用户在Linux环境下安装和配置RabbitMQ,包含的文件可能包括安装脚本、配置示例、源代码或文档。在实际操作中,根据具体需求选择合适的安装方式和配置策略,确保...
你可以通过官方Erlang OTP的源代码编译安装,也可以通过Linux的包管理器如`apt-get`(Ubuntu/Debian)或`yum`(CentOS/RHEL)来安装。 接下来,我们下载RabbitMQ的3.7.14版本。题目中给出的压缩包文件名为"rabbitmq...