ubuntu12.04重装Erlang记录

本文记录了在Ubuntu 12.04上重装Erlang的过程,由于旧版本不支持映射组语法,作者选择了卸载R16B02并使用Kerl管理器安装Erlang R17。通过卸载、下载、安装、激活和配置环境变量等步骤,最终成功运行了Erlang R17并解决了映射组语法错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,问题

上次学习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.youkuaiyun.com/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 进行查看

"""


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值