Instalación de Erlang/OTP
Partiendo del hecho de que $HOME/.local/bin
forma parte de tu $PATH
.
Instala kerl
alumno@servidor:~ $ wget https://raw.githubusercontent.com/kerl/kerl/master/kerl -O $HOME/.local/bin/kerl alumno@servidor:~ $ chmod +x $HOME/.local/bin/kerl
Descarga la lista de liberaciones (versiones) de Erlang/OTP:
alumno@servidor:~ $ kerl list releases Getting the available releases from erlang.org...
Compila la liberación de Erlang/OTP que te interese, en este caso la 18.3:
alumno@servidor:~ $ kerl build 18.3 18.3 Downloading otp_src_18.3.tar.gz to /home/alumno/.kerl/archives ... Extracting source code Building Erlang/OTP 18.3 (18.3), please wait... Erlang/OTP 18.3 (18.3) has been successfully built
Sugerencia:
alumno@servidor:~ $ KERL_CONFIGURE_OPTIONS="--enable-hipe \ --with-ssl \ --enable-dynamic-ssl-lib \ --without-wx \ --without-javac" kerl build 18.3 18.3
--enable-hipe
: activa el soporte para High Performance Erlang(HiPE).--with-ssl
: activa el soporte para OpenSSL.--enable-dynamic-ssl-lib
: hace uso de las bibliotecas de OpenSSL disponibles en el sistema operativo.--without-wx
: desactiva el soporte para wxWidgets/wxWindows.--without-javac
: desactiva el soporte para Oracle Java SE JDK.
Para más información: https://github.com/erlang/otp/blob/maint/HOWTO/INSTALL.md
La variable de entorno
KERL_CONFIGURE_OPTIONS
puede ser establecida en el archivo$HOME/.kerlrc
que es un script de shell/bin/sh
.Al terminar, lista las compilaciones disponibles:
alumnl@servidor:~ $ kerl list builds 18.3,18.3
Instala la liberación de Erlang/OTP previamente compilada, se sugiere el directorio
$HOME/.local/opt/erlang/18.3
:alumno@servidor:~ $ mkdir -p $HOME/.local/opt/erlang/18.3 alumno@servidor:~ $ kerl install 18.3 $HOME/.local/opt/erlang/18.3 Installing Erlang/OTP 18.3 (18.3) in /home/alumno/.local/opt/erlang/18.3... You can activate this installation running the following command: . /home/alumno/.local/opt/erlang/18.3/activate Later on, you can leave the installation typing: kerl_deactivate
Puedes listar las liberaciones de Erlang/OTP que tienes actualmente instaladas:
alumno@servidor:~ $ kerl list installations 18.3 /home/alumno/.local/opt/erlang/18.3
Puedes listar los módulos instalados en una liberación de Erlang/OTP con el comando
tree -L 1 $HOME/.local/opt/erlang/18.3/lib
Instalación de LFE (Lisp Flavored Erlang)
Partiendo del hecho de que ya tienes instalada una liberación de Erlang/OTP,
$HOME/.local/opt/erlang/18.3
por ejemplo.
Clona el repositorio de LFE, en
$HOME/.local/src/lfe
por ejemplo, e ingresa a él:alumno@servidor:~ $ mkdir -p $HOME/.local/src/lfe alumno@servidor:~ $ git clone https://github.com/rvirding/lfe.git $HOME/.local/src/lfe alumno@servidor:~ $ cd $HOME/.local/src/lfe
Activa la liberación de Erlang/OTP ya instalada y compila a LFE:
alumno@servidor:~/.local/src/lfe $ . $HOME/.local/opt/erlang/18.3/activate alumno@servidor:~/.local/src/lfe $ make escript get_maps_opts.escript make erlc-lfec make[1]: Entering directory '/home/alumno/.local/src/lfe' ... cc -o bin/lfeexec c_src/lfeexec.c bin/lfe bin/lfec -I include -o ebin -pa ../lfe src/cl.lfe ecp: #(cl ()) cp src/lfe.app.src ebin/lfe.app rm src/lfe_scan.erl make[1]: Leaving directory '/home/alumno/.local/src/lfe'
Al terminar
$HOME/.local/src/lfe/bin/lfe
es el Lisp Flavoured Erlang (LFE) shell.
Si todo ha salido bien, puedes ejecutar el Lisp Flavoured Erlang (LFE) shell:
alumno@servidor:~ $ cd $HOME/.local/src/lfe/bin
alumno@servidor:~/.local/src/lfe/bin $ ./lfe
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
..-~.~_~---..
( \\ ) | A Lisp-2+ on the Erlang VM
|`-.._/_\\_.-'; | Type (help) for usage info.
| g (_ \ |
| n | | | Docs: http://docs.lfe.io/
( a / / | Source: http://github.com/rvirding/lfe
\ l (_/ |
\ r / | LFE v1.1-dev (abort with ^G)
`-E___.-'
> (defun ° (f g) (lambda (x) (funcall g (funcall f x))))
°
> (° (lambda (x) (* 2 x)) (lambda (x) (* 3 x)))
#Fun<lfe_eval.14.37351555>
> (funcall (° (lambda (x) (* 2 x)) (lambda (x) (* 3 x))) 5)
30
Instalación de rebar3
Partiendo del hecho de que $HOME/.local/bin
forma parte de tu $PATH
.
Descarga a rebar3 y dale permisos de ejecución:
alumno@servidor:~ $ wget https://s3.amazonaws.com/rebar3/rebar3 -O $HOME/.local/bin/rebar3
alumno@servidor:~ $ chmod +x $HOME/.local/bin/rebar3
Puedes verificar la correcta instalación de rebar3
con:
alumno@servidor:~ $ rebar3 -v
rebar 3.0.0+build.271.refc619921 on Erlang/OTP 18 Erts 7.3
Sugerencia
Crea un script de shell o una función de shell para configurar tu entorno, por ejemplo:
#!/bin/bash
function loadlfe() {
set -x
local ERLANG_OTP_HOME="$HOME/.local/opt/erlang/18.3"
local LFE_HOME="$HOME/.local/src/lfe"
source $ERLANG_OTP_HOME/activate
kerl active
export PATH="$LFE_HOME/bin:$PATH"
set +x
}
De esta forma será más fácil cargar las variables de entorno necesarias:
alumno@servidor:~ $ loadlfe
alumno@servidor:~ $ which kerl
/home/alumno/.local/bin/kerl
alumno@servidor:~ $ which rebar3
/home/alumno/.local/bin/rebar3
alumno@servidor:~ $ which erl
/home/alumno/.local/opt/erlang/18.3/bin/erl
alumno@servidor:~ $ which lfe
/home/alumno/.local/src/lfe/bin/lfe