环境:ubuntu12.04, kerl安装的Erlang 17.0(上一篇中提到的)
学习过程中运行crashdump_viewer:start()报错,然后查询时发现一些有关wxWidgets的也报错,如下:
> observer:start().
=ERROR REPORT==== 7-Jul-2016::08:40:23 ===
ERROR: Could not find 'wxe_driver.so' in: /usr/local/bin/erlang/lib/wx-1.2/priv
{error,{{load_driver,"No driver found"},
[{wxe_server,start,1,[{file,"wxe_server.erl"},{line,64}]},
{wx,new,1,[{file,"wx.erl"},{line,114}]},
{observer_wx,init,1,[{file,"observer_wx.erl"},{line,91}]},
{wx_object,init_it,6,[{file,"wx_object.erl"},{line,299}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,239}]}]}}
网上的例子不是centos就是macos,我只能自己试验看看。
1,安装wxWidgets
查看:http://www.linuxidc.com/Linux/2012-10/73116.htm
$sudo apt-get install libwxbase2.8
$sudo apt-get install libwxbase2.8-dev
$sudo apt-get install libwxgtk2.8-0
$sudo apt-get install libwxgtk2.8-dev
$sudo apt-get install libwxgtk2.8-dbg
$sudo apt-get install wx-common
$sudo apt-get install wx2.8-headers
$sudo apt-get install wx2.8-i18n
($sudo apt-get install wx2.8-examples
$sudo apt-get install wx2.8-doc
以上两个为文档,选装)
装完试验,错误还在。网上也没有其他的例子,我猜想可能需要重装Erlang
2,kerl卸载之前的Erlang
./kerl delete build R17
./kerl delete installation /usr/local/bin/erlang/
#这里其实报错了,可能因为我之前安装路径使用的旧有的路径,所以删除失败。但是安装删除重复几次后,查询发现却是已经删除的状态:
$ ./kerl status
Available builds:
----------
Available installations:
----------
No Erlang/OTP kerl installation is currently active
3,kerl重新安装Erlang,
因为学习过程中发现Erlang 17.0对《Erlang程序设计(第2版)》中有些例子还是不支持,所以这次选择Erlang 18.0。
安装方法参考上一篇博客,同时由于之前删除出问题,这次安装选择新路径。
$ cd ~/kerl-master
$ ./kerl list releases
$ ./kerl build 18.0 R18
$ ./kerl list builds
$ sudo ./kerl install R18 /usr/local/bin/kerl_manager
$ . /usr/local/bin/kerl_manager/activate
4,安装完成,查看安装的版本:
$ erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 7.0
重新试验:
$ erl
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.0 (abort with ^G)
1> crashdump_viewer:start().
ok
成功
因为修改了安装路径,需要修改/etc/profile。
另外,可能因为之前旧版本删除不成功,导致其他窗口启动时还是R17,只能看重启后是否会改变,不行到时直接删除旧文件。
(重启了,现在各窗口启动erl都是R18。果然重启是王道啊)