安裝 erlang

安裝步驟參考文章

目標環境

  • Xubuntu 14.04 64位元

事前安裝編譯所需的套件

執行

$ sudo apt-get install build-essential automake autoconf libreadline-dev libncurses-dev libssl-dev libyaml-dev libxslt-dev libffi-dev libtool unixodbc-dev

安裝 git

執行

$ sudo apt-get install git

安裝 asdf

上面了參考文章有列了不同種的安裝方式,我選擇這裡「Compiling with version managers」提到的「asdf」。

以下是參考步驟

clone asdf

$ git clone https://github.com/HashNuke/asdf.git ~/.asdf

設定 asdf source

執行

echo '# source asdf ' >> ~/.bashrc
echo 'source $HOME/.asdf/asdf.sh' >> ~/.bashrc
echo 'source $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc

重新進入bash後

觀看 asdf 版本

執行

$ asdf --version

顯示

0.1

觀看 asdf 使用說明

執行

$ asdf -h

顯示

version: 0.1

MANAGE PLUGINS
  asdf plugin-add <name> <git-url>     Add git repo as plugin
  asdf plugin-list                     List installed plugins
  asdf plugin-remove <name>            Remove plugin and package versions
  asdf plugin-update <name>            Update plugin
  asdf plugin-update --all             Update all plugins


MANAGE PACKAGES
  asdf install <name> <version>        Install a specific version of a package or,
                                       with no arguments, install all the package
                                       versions listed in the .tool-versions file
  asdf uninstall <name> <version>      Remove a specific version of a package
  asdf which <name>                    Display version set or being used for package
  asdf where <name> <version>          Display install path for an installed version
  asdf list <name>                     List installed versions of a package
  asdf list-all <name>                 List all versions of a package


UTILS
  asdf reshim <name> <version>         Recreate shims for version of a package


"Late but latest"
-- Rajinikanth

安裝 asdf plugin

執行

asdf plugin-add erlang https://github.com/HashNuke/asdf-erlang.git
asdf plugin-add elixir https://github.com/HashNuke/asdf-elixir.git
asdf plugin-add lua https://github.com/Stratus3D/asdf-lua.git
asdf plugin-add modejs https://github.com/HashNuke/asdf-nodejs.git
asdf plugin-add ruby https://github.com/HashNuke/asdf-ruby.git

上面只要執行前面兩行就行了,其他的是順手編輯,可以參考「asdf / Add a plugin」,其中有表格可以參考。

觀看 asdf 目前有安裝那些 plugin

執行

$ asdf plugin-list

顯示

elixir
erlang
lua
nodejs
ruby

安裝 erlang

利用 asdf 安裝 erlang

觀看目前可以安裝的 erlang 有那些版本

$ asdf list-all erlang

顯示

18.2.1
18.1
18.0
17.5
17.4
17.3
17.1
17.0

上面的結果就是「~/.asdf/plugins/erlang/bin/list-all」的設定

安裝 erlang 18.2.1 這個版本

執行

$ asdf install erlang 18.2.1

觀看目前 erlang 已安裝的版本列表

執行

$ asdf list erlang

顯示

18.2.1

設定 global 使用 erlang 版本

執行

$ echo 'erlang 18.2.1' >> $HOME/.tool-versions

觀看「$HOME/.tool-versions」

執行

$ cat $HOME/.tool-versions

顯示

erlang 18.2.1

這時候就可以執行 erl 了

執行

$ erl

顯示

Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.2.1  (abort with ^G)
1>

「.tool-versions」,除了可以放在「$HOME」底下,當作global的設定,也可以在每個專案建立「.tool-versions」這個檔案,指定erlang要使用的版本。