ubuntu12.04重装Erlang记录

一,问题

上次学习erlang半途而废,这次重学。看《Erlang程序设计(第一版)》,一边看一边运行书中的例子。

然后在试验‘5.3.1 映射组语法’时出错

$ erl
Erlang R16B02 (erts-5.10.3) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.3  (abort with ^G)
1> F1 = #{a=>1,b=>2}.
* 1: syntax error before: '{'


百度看到‘Erlang 从 R17 版本开始支持映射组’,翻看书中的前言部分,果然看到‘介绍了Erlang的R17版’。

我装得erlang是R16B02,版本过低。


二,卸载

旧版本的erlang是下载源码,然后make install的。

查卸载方法:http://stackoverflow.com/questions/22396240/how-to-uninstall-or-upgrade-erlang-otp

文中第一个方法--prefix=path:

./configure --prefix=/opt/erlang-R15B01

./configure && make && make install

看情况是覆盖,但是我想删掉旧版本


第二个方法:

sudo apt-get purge erlang*

sudo rm -rf /usr/local/lib/erlang/

直接删除有点粗暴啊,但是erlang的Makefile好像没看到卸载的命令,就选这个了。

卸载完后/otp_src_R16B02先留着,别到时候新版本安装失败


三,重装

之前查到网站提到kerl VM manager,试一下这个。

查看: http://blog.csdn.net/yecong111/article/details/9132997

1、下载Kerl              https://github.com/spawngrid/kerl

2、随便找个路径下,解压kerl-master.zip

3、./kerl list releases 会出现Erlang的各个版本,你也可以使用./kerl update releases获取最新的版本。

因为书中介绍R17,我使用17.0版本

4、./kerl build 17.0 R17

进行下载,17.0是版本号,R17是别名

5、进行安装 (路径随你自己,我按照之前旧版本的路径 ) 

$ sudo ./kerl install R17 /usr/local/bin/erlang
[sudo] password for cloud:
Installing Erlang/OTP 17.0 (R17) in /usr/local/bin/erlang...
You can activate this installation running the following command:
. /usr/local/bin/erlang/activate
Later on, you can leave the installation typing:
kerl_deactivate

6、检查安装好的Erlang

$ ./kerl  list installations
R17 /usr/local/bin/erlang

7、激活(命令在第5步安装完成后会提示)

$ . /usr/local/bin/erlang/activate

8、验证安装是否成功

$ erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 6.0

9、在/etc/profile文件下添加环境变量

      export ERL_HOME=/usr/local/bin/erlang

      export PATH=$PATH:$ERL_HOME/bin

然后运行:

$ source /etc/profile

10、试验旧版本出问题的映射组,结果初步成功

$ erl
Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V6.0  (abort with ^G)
1> F1 = #{a=>1,b=>2}.
#{a => 1,b => 2}


11、其他

查看的博客上还有其他内容,贴在这以后查看

"""

      删除安装的Erlang

     1、./kerl delete build R17

     2、./kerl delete installation /usr/local/bin/erlang


     Kerl还有一些其他的命令,可以从https://github.com/spawngrid/kerl 进行查看

"""


你可能感兴趣的:(Erlang)