Home

Awesome

evm - Erlang Version Manager

This is a simple script which aims to simplify the management of different Erlang versions installed on your system. evm will allow you to install multiple versions of erlang on your system and easily switch between them. evm is like rvm (https://rvm.io) but with fewer features.

Installation

Download evm, unzip it, and on the top level directory simply execute:

$ ./install

Then add the following line to your .bashrc file:

source $HOME/.evm/scripts/evm

That will create some directories inside your $HOME/.evm dir:

After installing evm, you can check if everything is okay by executing:

$ evm help

If you see a list of evm commands, then your installation succeeded.

Usage

    EVM Home:
        ${EVM_HOME}
    Default Version:
        ${default_version:-"None"}
    Versions Ready To Use:
        ${available_versions:-"None"}

    Usage:
        * evm list
            Lists the available erlang versions which can be downloaded and 
	    installed.
        * evm cache
            Lists the available erlang versions which are in the evm space 
	    but not necessarily installed.
        * evm download [version]
            Downloads the erlang version.
        * evm install [version] [-y] [--with-docs] [erlang config options]
	    Downloads and installs the specified erlang version.
	    Use -y when you want to skip confirmation after the ./configure step.
	    -y will perform the installation even if dependencies are not met.
	    Do not use -y if you want to stop and check the dependencies.  
	    You can use --with-docs to build and install documentation for
	    erlang modules. You can also pass extra options to erlang install.
	    Extra options will be passed as is to the ./configure step, e.g.:
		   evm install 18.3 --with-ssl=/usr/local/ssl
        * evm installed
            Lists erlang versions which are built and are ready to be used.
        * evm use [version]
            Switches to the specified erlang version.
        * evm default [version]
            Makes the specified erlang version the default.
        * evm remove [version]
            Removes the specified erlang version completely from the evm space.
        * evm uninstall [version]
            Uninstalls the specified erlang version but keeps it within the 
	    evm space.
        * evm system
            Alters the PATH in the current shell to use the non-evm erlang.
        * evm version
            Prints the current version of evm.

Dependencies

This script is dependent on:

Erlang dependencies

On Debian based systems, this is the list of dependencies you probably need:

sudo apt-get install openssl libssl-dev fop xsltproc unixodbc-dev libxml2-utils libwxbase3.0-0v5 libwxbase3.0-dev libqt5opengl5-dev libncurses-dev libwxgtk3-3.0-gtk3-dev libwxgtk3-3.0-gtk3-0v5 wx-common

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request