iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
1

Elixir 這個英文字的意思,是鍊金術裡類似「萬靈藥」的概念。所以之前在 google 時,常常會出現這個:
https://ithelp.ithome.com.tw/upload/images/20171221/2010339066Ov2GJMeF.jpg

你也會發現 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 時,又會出現這個知名的吉它弦品牌:
https://ithelp.ithome.com.tw/upload/images/20171221/20103390x7pVEw6tb4.jpg

連 logo 都有點神似。


接下來將介紹如何在各個作業系統上安裝 Elixir 及 Phoenix 需要的環境。以下各節分別展示 macOS 與 Ubuntu 及 Windows 上的安裝方式。雖然相當無聊,但因中文圈裡資料太少,就忍受一下這必要之惡吧。 XD

安裝 Elixir、Node.js 及 PostgreSQL

macOS / Ubuntu 方案 A: 使用 Package manger

最直接的方式,就是用作業系統慣用的 package manager 安裝,好處是使用簡單,也永遠跟著最新版升級。由於 Phoenix 需要使用 Node.js,若你要用環境裡已有的版本,請留意版本要在 5.5 以上。(這是很久以前遇到的問題。但現今 LTS 都是 8.x 版了,新安裝的應該不需要特別擔心才是。)

其它的 Linux distribution,請參考 Elixir 官網Node.js 官網的說明

  • macOS
brew update
brew install elixir
brew install node
brew install postgresql
  • Ubuntu
sudo apt-get update
sudo apt-get install elixir
sudo apt-get install node
sudo apt-get install postgresql

macOS / Ubuntu 方案 B: 使用 asdf 版本管理

類似 rvm, rbenvnvmasdf 是類 unix 作業系統上,新的多語言版本管理器。一個套件可以管理很多個語言。目前個人環境中需要鎖定版本的語言都一律使用它來管理了。

  1. 首先參考asdf 安裝說明,依自己的作業系統及 shell 種類將它安裝好。
  2. 參考上述連結底下的說明,用 homebrew 或其它套件管理器將 “coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbc” 等一併裝起來。然後重開 shell。
  3. 將 Elixir 及 Node.js 的 asdf plug-in 裝好:
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
  1. 最後安裝並設定 Elixir 及 Node.js 的最新版本:
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 喔。

Windows 方案 A: 用包好的執行檔安裝

分別到 Elixir-windows-setupPostgreSQL InstallerNode.js 下載可執行安裝檔。不斷的下一步應該就完成了。但這個安裝方式要升級語言版本相當麻煩,推薦使用底下的 Chocolatey 來安裝。

Windows 方案 B: 用 Chocolatey 套件管理

Chocolatey 就像 Mac 上的 Homebrew,是個好用的套件管理器。安裝方式如下:

  1. 找到Chocolatey 安裝說明Install with cmd.exe 下面的 copy command text 按鈕。按下去就會複製指令。接著用管理員身份打開 “cmd.exe”,貼上複製的指令按下 [Enter]。接著依指示操作。
  2. 重開 “cmd.exe”,輸入以下指令:
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 subsystem for Linux 安裝

如果你的作業系統是 Windows 10 Pro,你可以考慮使用內建的 Linux 子系統(Windows subsystem for linux, WSL),透過 Linux 來安裝及執行。雖然這是個人最喜歡的安裝方式,但由於需要的先備知識很多,所以這邊請自行參考網路上的教學設定好 WSL 後,再參考Elixir 官網 WSL 說明進行後續步驟。

測試是否安裝成功

試著在終端機 / cmd.exe / Power shell (之後簡稱為 shell)中輸入 elixir -v, 若能正確顯示版號,就代表安裝成功,可以接著進行下一步了。

安裝 Phoenix

對所有的作業系統來說,這一步都是一樣的。打開 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 檔案… 的錯誤,解決方式如下:

  1. 用系統管理員身份開啟 power shell
  2. 輸入 Set-ExecutionPolicy RemoteSigned,按下 [Enter]
  3. 出現確認提示時,輸入 Y,再按一次 [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]

答案會在明天公佈喔!

Summary

環境安裝好,明天就要開始用 Elixir 的語法,來嚐試函數式編程的體驗了。敬請期待!

Happy hacking!明天見囉。


上一篇
Elixir, Phoenix: what and why.
下一篇
什麼是函數式編程,與「等號究竟是什麼意思?」
系列文
函數式編程: 從 Elixir & Phoenix 入門。31

尚未有邦友留言

立即登入留言