robisonsantos / evm Goto Github PK
View Code? Open in Web Editor NEWErlang Version Manager
Erlang Version Manager
I run this command evm install 1.7.3
and it returns
1.7.3 - This version is not available at http://www.erlang.org/download.html
. Any helps?
Using EVM with Zsh fails because Zsh doesn't provide shopt
.
Workaround: switching to bash before using EVM.
I'm writing a quick Homebrew formula for EVM here: https://github.com/chriskilding/homebrew-evm
At the moment it installs from the HEAD Git commit, and the post-install step of adding EVM to the shell profile is left to the user.
A couple of questions:
/usr/local/...
and the Brew Cellar. This way they're also made available on the path without extra post-install steps (e.g. appending to ~/.zshrc
). Would this be applicable to EVM? And if so what would I need to change about its installation to accommodate this?:head
install-from-Git option. Would you be able to create stable Semantically Versioned releases of EVM on GitHub Releases?Everything compiles but this happens when I execute some library that uses ssl.
Eshell V8.3 (abort with ^G)
1> Assertion failed: (ctx), function digest_update, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/boringssl/boringssl-109.20.5/apple/crypto/digests.c, line 49.
[1] 78693 abort erl -eval 'io:format("~p~n",[crypto:hash(md5, <<"xyzzy">>)]).' -s init stop
Most likely related erlang/otp#1501
Giving a try with kerl
since it's marked as fixed since some versions back.
Is it possible to pass option to the install command like ssl lib path?
ex. evm install OTP_18.3 --with-ssl=/usr/local/opt/openssl/
Hi there,
Slightly off-topic, but I am trying to figure out the best way to install RabbitMQ using an erlang version installed with evm.
If I download the .deb package for rabbitmq-server, it seems to have issues recognizing the fact that erlang is installed - just not through apt-get. Specifically, it seems to not have the following "satisfiable dependencies": erlang-nox >= 1:19.3 and esl-erlang >= 1:19.3
Any guidance would be appreciated!
On zsh
when I open a new shell, evm doesn't apply my default erlang version. In fact it seems to not set the version at all and default to system erlang.
Hi,
to build on my Arch linux system I need to use this command line (fixes some issue with openssl):
evm install OTP_17.3 --with-docs --with-ssl=/home/user/.openssl-1.0 --without-termcap
If I use the lastest evm, it does not wait for y/n confirmation before starting the build, and I see in the shell output that crypto and other things are being disabled because no usable OpenSSL version has been found (as if the command line was not being correctly passed to configure).
If I checkout evm from commitId b42df43, it works as it used to: it shows a nice y/n prompt after configure step, and it does not complain about OpenSSL
Did you change command line options somehow?
I think I'm getting a bash error:
~$ evm installed
Installed Erlang versions on this system
-bash: unalias: ls: not found //<==HERE
19.2
------
=* : current and default
=> : current
* : default
OSX 10.10.5
~$ evm version
4.0.4
Hello @robisonsantos,
I get an error "not valid in this context: OTP_17.1" every time I try to execute an evm command. From my bare minimum bash scripting knowledge I found that list_available_erl_versions might be the cause of this problem.
I run a Ubuntu 14.04.1 x86-64 laptop with ZSH 5.0.2.
I have erlang 17.5
installed in /usr/local/lib. evm
considers that my "system" install. After installing evm, I downloaded erlang 19.2
, and I can switch back and forth between my two versions of erlang using:
$ evm system (erlang 17.5)
$ evm use 19.2 (erlang 19.2)
I was able to set up dialyzer with erlang 17.5, but when I switch to erlang 19.2 and try to setup dialyzer, here is what happens :
~/erlang_programs$ evm use 19.2
~/erlang_programs$ dialyzer
Checking whether the PLT /Users/7stud/.dialyzer_plt is up-to-date... no
(the PLT /Users/7stud/.dialyzer_plt was built with an old version of Dialyzer)
Compiling some key modules to native code... done in 0m0.24s
Rebuilding the information in /Users/7stud/.dialyzer_plt...
dialyzer: Analysis failed with error:
Could not scan the following file(s):
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/timer.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/sys.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/supervisor_bridge.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/supervisor.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/lists.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/proc_lib.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/gen_event.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/gen_server.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/stdlib-2.4/ebin/array.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/seq_trace.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/rpc.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/gen_udp.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/gen_tcp.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/file.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/disk_log.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/code.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/kernel-3.2/ebin/application.beam
Could not get core Erlang code for: /usr/local/lib/erlang/lib/erts-6.4/ebin/erlang.beam
Last messages in the log cache:
Reading files and computing callgraph...
17.5:
$ which dialyzer
/usr/local/bin/dialyzer
19.2:
$ which dialyzer
/Users/7stud/.evm/erlang_versions/otp_src_19.2/bin/dialyzer
Hi,
I'm trying to use dialyzer with erlang 19.2 which was installed by evm, but I'm getting this error:
dialyzer --build_plt --apps erts kernel stdlib
dialyzer: Could not get abstract code for file: /home/michel/.evm/erlang_versions/otp_src_19.2/lib/erlang/lib/erts-8.2/ebin/erlang.beam (please recompile it with +debug_info)
How do I tell evm to compile erlang with debug info? Thanks
Steps to reproduce:
evm list
Output:
~ โ evm list
Available Erlang versions on http://www.erlang.org
"grep -P" is used in the script at a lot of places. This does not work with the grep included in Max OS X.
I have changed it to "grep -E" and it worked for my purposes, which is to list available versions and install the required version.
Are there any cases where perl specific things are used. If not, can all usages of "grep -P" be changed to "grep -E".
Hello,
I am trying to build OTP19.3 on an up-to-date Arch Linux system.
It gives error in configure steps and build eventually fails.
The configure output is attached (build command is "evm install 19.3 --with-docs --with-ssl=/home/seba/.openssl-1.0", I have a custom setup for ssl otherwise it won't work).
It looks to me like some sort of autoconf issue...
Thank you in advance.
configure_stdout.log
Hi,
usually when installing erlang via deb package erl_call is available in PATH (usually it's in /usr/bin). On my evm installation, erl_call is not found PATH, it's not in .evm/erlang_versions/otp_src_17.3/bin as other erl* commands, but it's available as .evm/erlang_versions/otp_src_17.3/lib/erlang/lib/erl_interface-3.7.18/bin/erl_call. Maybe a symlink to erl_call should be in .evm/erlang_versions/otp_src_17.3/bin too?
When trying to install the OTP_20.2
using evm on zsh I get the following error message:
$ evm install OTP_20.2 --with-ssl=/usr/local/opt/openssl
ARG: --with-ssl=/usr/local/opt/openssl
OTP_20.2 is already cached, don't need to download it
Inflating /Users/sphinxc0re/.evm/erlang_tars/otp_src_20.2.tar.gz
Configuring...
configure: error: invalid variable name: --with-ssl
Continue with installation?(y/n)
n
Cancelling installation of OTP_20.2
I realize this is not directly evm problem, but just asking if there's some way to kill 2 birds with one stone here.
It looks like something changed in > erl23 and a rebar3 compiled with sayl, er23 barfs when run against erl25 with
init terminating in do_boot ({undef,[{rebar3,main,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]})
This requires recompiling rebar3 when switching with evm. What would be the cleanest way to leverage how evm works such that switching evm would also switch rebar3 version? I can do the work and send a PR. Thanks.
An error occurs when the observer is invoked.
$ erl -sname observer -hidden -setcookie MyCookie -run observer -init_debug
{progress,preloaded}
{progress,kernel_load_completed}
{progress,modules_loaded}
{start,heart}
{start,error_logger}
{start,application_controller}
{progress,init_kernel_started}
{apply,{application,load,[{application,stdlib,[{description,"ERTS CXC 138 10"},{vsn,"1.18.3"},{id,[]},{modules,[array,base64,beam_lib,binary,c,calendar,dets,dets_server,dets_sup,dets_utils,dets_v8,dets_v9,dict,digraph,digraph_utils,edlin,edlin_expand,epp,eval_bits,erl_bits,erl_compile,erl_eval,erl_expand_records,erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp,erl_scan,erl_tar,error_logger_file_h,error_logger_tty_h,escript,ets,file_sorter,filelib,filename,gb_trees,gb_sets,gen,gen_event,gen_fsm,gen_server,io,io_lib,io_lib_format,io_lib_fread,io_lib_pretty,lib,lists,log_mf_h,math,ms_transform,orddict,ordsets,otp_internal,pg,pool,proc_lib,proplists,qlc,qlc_pt,queue,random,re,sets,shell,shell_default,slave,sofs,string,supervisor,supervisor_bridge,sys,timer,unicode,win32reg,zip]},{registered,[timer_server,rsh_starter,take_over_monitor,pool_master,dets]},{applications,[kernel]},{included_applications,[]},{env,[]},{maxT,infinity},{maxP,infinity}]}]}}
{progress,applications_loaded}
{apply,{application,start_boot,[kernel,permanent]}}
Erlang R15B03 (erts-5.9.3) [source] [smp:6:6] [async-threads:0] [hipe] [kernel-poll:false]
{apply,{application,start_boot,[stdlib,permanent]}}
{apply,{c,erlangrc,[]}}
{progress,started}
Eshell V5.9.3 (abort with ^G)
(observer@node1>
=ERROR REPORT==== 21-Aug-2013::15:44:56 ===
ERROR: Could not find 'wxe_driver.so' in: /home/user/.evm/erlang_versions/otp_src_R15B03/lib/erlang/lib/wx-0.99.2/priv
(observer@node)1>
When typing in evm installed
I get an error saying:
evm_installed:30: command not found: dir
EDIT: This is happending using zsh
as a shell
I wonder if adding this means the evm
script is not supposed to be sourced anymore, or an unset
of this option is needed at the end of the script? Because currently, after the script has done its job, the shell is still set to exit upon any errors, like mistyping a command.
At least observed on:
OSX 10.10.5
$ evm version
4.0.4
Here is the output from evm installed
before choosing an erlang version:
~/.evm/scripts$ evm installed
Installed Erlang versions on this system
19.2
------
=* : current and default
=> : current
* : default
Then I choose the erlang version:
~$ evm use 19.2
And now the problem reveals itself:
~$ evm installed
Installed Erlang versions on this system
\e[1;32m=> 19.2\e[0m //<===HERE
------
=* : current and default
=> : current
* : default
I'm using OSX's Terminal app, and I have the "text encoding" setting (under Preferences>Profiles>Advanced Tab) set to UTF-8
.
I tried changing my terminal's encoding to Latin-1, but I get the exact same output.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.