# **附錄 A Ruby 運行環境的構建**
### **A.1 Ruby 的安裝**
接下來將介紹在 Windows、MAC OS X、Unix 下使用 Ruby 的方法。在 Windows 下利用 mswin32 版的安裝包——RubyInstaller for Windows 安裝 Ruby。在 Mac OS X 中默認已經安裝了 Ruby,雖然可以直接使用,不過由于版本過于老舊,我們將介紹如何使用軟件包管理工具升級 Ruby。在 Unix 下,我們將會介紹用從源代碼編譯的方法安裝 Ruby。
關于 Ruby 的安裝方法,也可以參考以下網頁。
-
**下載 Ruby(Ruby 官方網站):**
[https://www.ruby-lang.org/zh_cn/downloads/](https://www.ruby-lang.org/zh_cn/downloads/)
請自行安裝軟件。
### **A.2 在 Windows 下安裝**
本節介紹如何使用 RubyInstaller 安裝 Ruby。首先可從以下網站下載 RubyInstaller。
- **Ruby Installer for Windows** :[http://rubyinstaller.org/](http://rubyinstaller.org/)
點擊首頁的 Download 鏈接則會跳轉到下載頁面,從上面可以看到安裝包的一覽表,點擊對應的下載鏈接就可以下載 Ruby 2.0.0-p451 安裝包 1。
1翻譯本書時最新版本為 Ruby 2.0.0-p451。——譯者注
下面我們來介紹通過 RubyInstaller 安裝 Ruby 的步驟。下面的截圖是在 Windows 8 Pro 64 位版下安裝 Ruby 2.0.0-p451 時截取的。
### **A.2.1 開始安裝**
雙擊下載后的 rubyinstaller-2.0.0-p451-x64.exe 圖標,啟動 Installer。
在語言選擇對話框中直接點擊 OK 按鈕(圖 A.1)。

**圖 A.1 語言選擇對話框**
### **A.2.2 同意軟件使用許可協議**
接下來顯示的是 RubyInstaller 的軟件使用許可協議。RubyInstaller 本身是遵循 BSD 許可證的,Ruby 以及第三方的軟件的許可證需要另外再確認。如果不是用于商業用途,一般不會有什么問題。確認后,選擇 I accept the License,點擊 Next 按鈕。

**圖 A.2 軟件使用許可協議**
### **A.2.3 確認安裝路徑以及選項**
安裝時我們可以指定安裝路徑以及一些安裝選項(圖 A.3),選項有以下 3 個。
-
**安裝 Tcl/Tk 支持**
Tcl/Tk 是用于創建視窗程序的 GUI 類庫。雖然本書并沒有涉及該內容,不過即使安裝也不會有什么影響。
-
**把 Ruby 執行文件設置到環境變量 PATH**
通過設置環境變量 PATH,在普通的命令行可以直接執行 Ruby.exe。與其他程序的 DLL 讀取也會有關聯,在不清楚影響范圍時,請不要選擇。
-
**把 .rb 與 .rbw 文件與 Ruby 關聯**
雙擊擴展名為 .rb 與 .rbw 的文件時,會把文件作為 Ruby 腳本來執行。
選擇需要的選項后,點擊 Install 按鈕。

**圖 A.3 確認安裝路徑以及選項**
### **A.2.4 安裝進度**
顯示安裝進度(圖 A.4)。

**圖 A.4 安裝進度**
### **A.2.5 安裝完成**
安裝完成后,點擊 Finish 按鈕結束 RubyInstaller 的安裝(圖 A.5)。

**圖 A.5 安裝完成**
### **A.2.6 啟動控制臺**
系統為 Windows 8 時,點擊開始界面上的 Start Command Prompt with Ruby,系統會自動加載執行 Ruby 需要的環境變量,然后啟動控制臺(圖 A.6)。

**圖 A.6 啟動 Ruby 控制臺**
系統為 Windows 7 時,按照以下順序啟動控制臺:開始→ 所有程序 → Ruby-2.0.0-p451-x64 → Start Command Prompt with Ruby。

**圖 A.7 啟動 Ruby 控制臺(Windows 7)**
啟動控制臺(圖 4.8)后,輸入 ruby -v,可以確認 Ruby 的版本。顯示下圖信息時表示已經安裝完畢。

**圖 A.8 Ruby 的控制臺**
### **A.3 在 Mac OS X 下安裝**
Mac OS X 雖然會默認安裝 Ruby,但因為是舊版本的,所以我們需要自行安裝最新版本。
為了確認當前 Ruby 的版本,首先要啟動控制臺。通過在 Finder 中選擇應用程序→工具→終端來啟動控制臺。
輸入 Ruby -v 就可以顯示當前 Ruby 的版本。
> **執行示例**
~~~
> ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal.darwin12.0]
~~~
像這樣,顯示 1.8 則表示系統安裝的是舊版本的 Ruby。
自行安裝最新版 Ruby 時,我們可以選擇使用軟件包管理工具安裝,或者從源代碼編譯安裝。
從源代碼安裝的步驟與在 Unix 下的安裝是一樣的,請參考 A.4 節。
下面介紹通過安裝包管理系統 MacPorts 安裝 Ruby 的方法。
### **通過 MacPorts 安裝**
MacPorts 是 Mac OS X 平臺下使用的軟件包管理工具。首先要在 MacProts 的官方網站([http://www.macports.org](http://www.macports.org))下載最新的安裝包。請注意,不同的 Mac OS X 的版本對應的下載 .dmg 文件是不一樣的。雙擊下載好的安裝文件后,按照畫面指示即可安裝 MacPorts。
安裝完成后,首先執行以下命令,把 MacPorts 以及軟件包列表更新到最新版本。使用 port 命令需要用到超級管理員權限,因此需要配合 sudo 命令一起使用。
~~~
> sudo port -v selfupdate
> sudo port -d sync
~~~
系統詢問密碼時,輸入當前用戶的密碼即可。
接下來就可以安裝 Ruby 了。
~~~
> sudo port install ruby20
~~~
這樣就可以安裝 Ruby2.0.0 了。
但安裝后,需要輸入 `ruby20` 才可以執行 ruby 命令。使用以下命令,輸入 `ruby` 時,實際執行的是 `ruby20`。
~~~
> sudo port select ruby ruby20
Selecting 'ruby20' for 'ruby' succeeded. 'ruby20' is now active.
~~~
MacPorts 會將 Ruby 安裝在 /opt/local/bin 目錄下。不希望指定文件路徑,直接使用通過 MacPorts 安裝的文件時,可將以下內容追加到環境變量設定文件 ~/.bashrc 中。
~~~
# PATH 追加
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# MANPATH 追加
export MANPATH=/opt/local/man:$MANPATH
~~~
可用下面的命令,確認通過 MacPorts 安裝的 Ruby 版本。
~~~
> port select --show ruby
The currently selected version for ‘ruby’ is ‘ruby20’
~~~
### **A.4 在 Unix 下安裝**
Unix 下有可能已經默認安裝了 Ruby,可在控制臺執行以下命令確認。
~~~
> ruby -v
~~~
像下面那樣顯示 Ruby 版本為 2.0.0 時可不重新安裝。
~~~
ruby 2.0.0p0 (2013-02-24 revision 39474) [i386-netbsdelf]
~~~
如果安裝的是 Ruby 1.9 等舊版本 Ruby,讀者可考慮安裝最新版本。
### **A.4.1 從源代碼編譯**
首先通過以下 URL 下載 Ruby 的源代碼。
-
ftp://ftp.ruby-lang.org/pub/ruby/ruby-版本號-p補丁級別.tar.gz
版本號部分表示的是 Ruby 的版本。本書翻譯時最新的版本為 ruby-2.0.0-p451,因此最新的 URL 如下所示。
-
ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.0.0-p451.tar.gz
執行以下命令,解壓壓縮包后,會自動創建 ruby-2.0.0-p451 目錄。
~~~
> tar zxvf ruby-2.0.0-p451.tar.gz
~~~
進入該目錄,按順序執行以下命令,則安裝完畢。
~~~
> cd ruby-2.0.0
> ./configure
> make
> make test
> make install
~~~
最后的 `make install` 命令需要配合 sudo 命令,使用超級管理員權限執行。沒有超級管理員權限時,要么請擁有權限的管理人員安裝,要么安裝在當前用戶可讀寫的目錄下。例如,執行以下命令可將 Ruby 安裝在當前用戶的主目錄下。
~~~
> ./configure --prefix=$HOME
~~~
這種情況下,ruby 命令、irb 命令等將會安裝在 $HOME/bin 目錄下。
### **A.4.2 使用二進制軟件包**
在 Unix 下編譯安裝 Ruby 雖然簡單,但使用各平臺的軟件包管理工具安裝則會便于日后管理。現在廣泛使用的平臺(各發行版的 Linux、BSD 等)中,都有各自對應的二進制或者從源碼編譯好的軟件包,讀者可根據各平臺的使用方法安裝 Ruby。
### **A.4.3 使用 Ruby 軟件包管理工具**
Ruby 并非某個平臺獨占的語言,還有一些跨平臺的 Ruby 專用的軟件包管理工具。其中 rvm 以及 rbenv 比較有名。在這里我們來介紹一下 rbenv 的使用方法。
rbenv 的的源碼托管在 github 網站,通過 git 命令獲取。下面,我們把 rbenv 的源碼下載到當前用戶的主目錄下的 .rbenv 目錄中。
~~~
> git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
~~~
環境變量 PATH 以及 rbenv 的初始化信息可在 shell 的設定文件中設定。使用 bash 時,執行以下命令,將必要的初始化信息設定到環境設定文件 ~/.bashrc 中。
~~~
> echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
> echo 'eval "$(rbenv init -)"' >> ~/.bashrc
~~~
然后使用下面的命令更新 shell 的狀態,也可以直接重啟 shell。
~~~
> exec $SHELL -l
~~~
使用 git 命令下載 ruby-build。
~~~
> git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
~~~
這樣就可以使用 rbenv install 命令了。如果執行 rbenv rehash 命令,使用 rbenv global 命令,則可將 ruby 命令設定為 2.0.0 版本。
~~~
> rbenv install 2.0.0-p451
> rbenv rehash
> rbenv global 2.0.0-p451
> ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-darwin13.1.0]
~~~
### **A.5 編輯器與 IDE**
一般我們用文本編輯器編寫 Ruby 程序。可對應 Ruby 語法的編輯器,提供了諸如在適當的地方進行代碼縮進,對 if、while 等關鍵字、常量、字符串等加上顏色等提高編程效率的功能。
讀者可參考使用本節介紹的編輯器、IDE 工具,當然也可以選擇使用符合自己習慣的工具。
在 Unix、Mac OS X 系統上經常使用的編輯器有 Vim 和 Emacs。可免費使用的 Unix 中,一般都可以通過 OS 提供軟件包管理工具安裝。在使用英語的 Mac 用戶中,Sublime Text 2 非常流行,而在日本則不太普及。
Windows 平臺下的默認安裝的記事本(notepad),其編輯功能非常弱,幾乎不能用于編寫程序。因此需要自行安裝可對應 Ruby 編程的編輯器。
除了普通的編輯器外,還可以使用所謂的 IDE(集成開發環境)提供的編輯器編寫 Ruby 程序。IDE 除了可以編寫程序,還集成了執行、測試等功能。
以 Java IDE 為基礎的 Aptana Studio(原名 Radrails)、RubyMine、NetBeans 等都是比較常用的 IDE。
-
**RadRails** :[http://www.radrails.org/](http://www.radrails.org/)
-
**RubyMine** :[http://www.jetbrains.com/ruby/](http://www.jetbrains.com/ruby/)
-
**NetBeans** :[https://netbeans.org/](https://netbeans.org/)
### **沒有好用的編輯器就不能編寫 Ruby 程序嗎**
看到這里,也許有的讀者會認為若沒有好用的編輯器就不能用 Ruby 編寫程序。一般 Unix 系統默認都安裝了 Vi 或者 Emacs,因此對使用 Unix 的讀者來說問題不大,但使用 Windows 的讀者卻大部分只安裝了記事本。
但實際情況并非如此。筆者在創建簡單的程序,或者只是稍微簡單修改一下程序時也經常使用記事本或通過 irb 等工具直接執行 Ruby 程序。這種情況下,雖然需要在代碼縮進等方面下點功夫,但也沒想象中那么花時間。
但對于初學者來說,為了便于快速入門,建議還是使用上手門檻較低的編輯器,因此我們在這里介紹了 Ruby 的各種常用的編輯器。熟練掌握編輯器的使用方法,是寫出優質程序的捷徑。
- 推薦序
- 譯者序
- 前言
- 本書的讀者對象
- 第 1 部分 Ruby 初體驗
- 第 1 章 Ruby 初探
- 第 2 章 便利的對象
- 第 3 章 創建命令
- 第 2 部分 Ruby 的基礎
- 第 4 章 對象、變量和常量
- 第 5 章 條件判斷
- 第 6 章 循環
- 第 7 章 方法
- 第 8 章 類和模塊
- 第 9 章 運算符
- 第 10 章 錯誤處理與異常
- 第 11 章 塊
- 第 3 部分 Ruby 的類
- 第 12 章 數值類
- 第 13 章 數組類
- 第 14 章 字符串類
- 第 15 章 散列類
- 第 16 章 正則表達式類
- 第 17 章 IO 類
- 第 18 章 File 類與 Dir 類
- 第 19 章 Encoding 類
- 第 20 章 Time 類與 Date 類
- 第 21 章 Proc 類
- 第 4 部分 動手制作工具
- 第 22 章 文本處理
- 第 23 章 檢索郵政編碼
- 附錄
- 附錄 A Ruby 運行環境的構建
- 附錄 B Ruby 參考集
- 后記
- 謝辭