Elixir 這個英文字的意思,是鍊金術裡類似「萬靈藥」的概念。所以之前在 google 時,常常會出現這個:
你也會發現 Elixir 語言相關的工具、套件等,常常會試著用鍊金術、化學或是神話概念的字。例如 mix、poison 跟 distillery 等等。Dave Thomas 在他的 "Programming Elixir" 裡,還開了這樣的玩笑:
Of course, I’m not saying that Elixir is a magic potion (well, technically it is, but you know what I mean)
不過就算 google 時謹慎的下了關鍵字,當對字串有疑義,查了 Elixir string 時,又會出現這個知名的吉它弦品牌:
連 logo 都有點神似。
接下來將介紹如何在各個作業系統上安裝 Elixir 及 Phoenix 需要的環境。以下各節分別展示 macOS 與 Ubuntu 及 Windows 上的安裝方式。雖然相當無聊,但因中文圈裡資料太少,就忍受一下這必要之惡吧。 XD
最直接的方式,就是用作業系統慣用的 package manager 安裝,好處是使用簡單,也永遠跟著最新版升級。由於 Phoenix 需要使用 Node.js,若你要用環境裡已有的版本,請留意版本要在 5.5 以上。(這是很久以前遇到的問題。但現今 LTS 都是 8.x 版了,新安裝的應該不需要特別擔心才是。)
其它的 Linux distribution,請參考 Elixir 官網 及 Node.js 官網的說明
brew update
brew install elixir
brew install node
brew install postgresql
sudo apt-get update
sudo apt-get install elixir
sudo apt-get install node
sudo apt-get install postgresql
asdf
版本管理類似 rvm, rbenv 及 nvm,asdf 是類 unix 作業系統上,新的多語言版本管理器。一個套件可以管理很多個語言。目前個人環境中需要鎖定版本的語言都一律使用它來管理了。
asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git
bash ~/.asdf/plugins/nodejs/bin/import-release-team-keyring
asdf install elixir 1.5.3
asdf global elixir 1.5.3
asdf install nodejs 8.9.3
asdf global nodejs 8.9.3
這樣就完成了!更詳細的 asdf 功能請參考上述官網。
注意:即使用了 asdf
,還是要依上節的方式安裝 PostgreSQL 喔。
分別到 Elixir-windows-setup、PostgreSQL Installer 及 Node.js 下載可執行安裝檔。不斷的下一步應該就完成了。但這個安裝方式要升級語言版本相當麻煩,推薦使用底下的 Chocolatey 來安裝。
Chocolatey 就像 Mac 上的 Homebrew,是個好用的套件管理器。安裝方式如下:
C:\> choco install elixir
C:\> choco install nodejs-lts
C:\> choco install postgresql
三個過程中都會提示 “Do you want to run the script?([Y]es/[N]o/[P]rint):”,請輸入 Y 並按下 [Enter]。這樣就完成了。
如果你的作業系統是 Windows 10 Pro,你可以考慮使用內建的 Linux 子系統(Windows subsystem for linux, WSL),透過 Linux 來安裝及執行。雖然這是個人最喜歡的安裝方式,但由於需要的先備知識很多,所以這邊請自行參考網路上的教學設定好 WSL 後,再參考Elixir 官網 WSL 說明進行後續步驟。
試著在終端機 / cmd.exe / Power shell (之後簡稱為 shell)中輸入 elixir -v
, 若能正確顯示版號,就代表安裝成功,可以接著進行下一步了。
對所有的作業系統來說,這一步都是一樣的。打開 shell。輸入底下指令:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
就大功告成囉。
Note for windows: 使用 Power shell 輸入 mix
指令時,若出現 mix : C:\Program因為這個系統上已停用指令碼執行,所以無法載入 C:\Program Files (x86)\Elixir\bin\mix.ps1 檔案… 的錯誤,解決方式如下:
Set-ExecutionPolicy RemoteSigned
,按下 [Enter]打開 shell,輸入 iex
(若是 power shell,則輸入 iex.bat
),應該能看到以下畫面。這就是 Elixir 的 interactive interface,也就是眾所周知的 repl。
試著輸入底下每行 iex(n)>
後方的程式碼,並猜猜看這是什麼意思吧!
iex(1)> [head | tails] = [1, 2, 3, 4]
[1, 2, 3, 4]
iex(2)> head
1
iex(3)> tails
[2, 3, 4]
答案會在明天公佈喔!
環境安裝好,明天就要開始用 Elixir 的語法,來嚐試函數式編程的體驗了。敬請期待!
Happy hacking!明天見囉。