安裝 Rails 開發環境
安裝 Rails 開發環境
Give someone a program, you frustrate them for a day; teach them how to program, you frustrate them for a lifetime. - David Leinweber
https://ihower.tw/rails4/installation.html
在這一章中,我們將介紹如何安裝Ruby on Rails的開發環境。開發Rails的環境需要:
- Ruby 1.9.3以上版本或JRuby,本書使用2.1.5。
- 資料庫系統,Rails預設使用SQLite可以作為新手開發練習之用,正式上線環境則推薦使用MySQL或PostgreSQL。
- Ruby on Rails,本書適用4.2版本。
JRuby與Ruby最大的差異在於一些需要編譯的RubyGem套件:有些因為效能要求而用C語言撰寫的RubyGem在JRuby上不一定能夠安裝使用。所幸這些多半都有替代的套件可以使用,但不在本書介紹範圍。
以上差不多就是最基本的開發需求。如果需要部署到正式上線環境,則至少還需要一個專門的網站伺服器(Apache或Nginx等),我們會在佈署一章再詳細說明。接下來我們會根據不同作業系統來說明如何安裝Rails開發環境。
作業系統
Ruby可以運行在Windows、Linux、Mac OS X、BSD和Solaris上。雖然Rails可以在Windows上執行,但是有些套件只有支援Unix-like作業系統,以及Ruby程式在Unix-like系統上執行起來也比較快速及穩定。這是因為絕大多數的Ruby和Rails開發人員都是使用Mac和Linux系統。
Unix-like泛指各種傳統的Unix系統,比如FreeBSD、OpenBSD、Solaris,以及各種與Unix類似的系統,例如Linux、Mac OS X等等。有的是自由軟體,有的是商業軟體,但都相當程度地保留了原始Unix系統的特性,以及有許多相似之處。
因此,Rails的正式上線環境中都會強烈建議使用Unix-like作業系統。作為開發人員,擁有良好使用者介面、底層又與Unix類似的Mac作業系統就變成了首選的開發平台,大部分的專業Ruby工作者,也都是使用Mac電腦。不過,使用Windows的朋友也別擔心,本書的內容一樣都適用,入門學習絕對沒問題。只是如果讀者的每日工作就是進行Web網站開發,那麼我會建議您考慮使用Mac OS系統或試試Ubuntu Desktop作業系統。和學習Ruby一樣,從 Windows轉換到Mac也是非常有趣的事情,可以獲得不少樂趣。
這是使用開源軟體需要考慮的因素:開源軟體是靠社群維護的,因此較多人使用的主流平台(作業系統、資料庫等)就會支援較佳,而越少人用的平台就會地雷較多。
資料庫
Rails支援的資料庫包括SQLite3、MySQL、Postgres、IBM DB2、Oracle和SQL Server等。除了安裝資料庫軟體,我們也需要安裝搭配的Ruby函式庫(稱作Adapter或Driver)。作為新手的單機練習,使用SQLite就可以了,本章會先介紹SQLite的安裝方式。附錄則會介紹如何安裝MySQL和PostgreSQL。
開發環境
命令列視窗
有許多工作需要透過指令列介面CLI (Command Line Interface)完成,像是安裝套件、執行rails指令、執行測試等等。雖然有一些GUI圖型介面工具可以輔助,但是到頭來你會發現還是直接在指令列輸入最快最可靠,發生問題的時候也容易除錯。
Mac OS下要進入命令列視窗,請打開Go->Utilities中的Terminal,或是筆者推薦可以安裝iTerm2。Ubuntu Desktop下是Applications->Accessories下的Terminal。Windows則是「開始->附屬應用程式」中的「命令提示字元」。
Unix-like的指令和Windows的指令很多是不同的,以下是一些常用的指令:
| 用途 | Unix-like | Windows |
|---|---|---|
| 移動所在目錄 | cd XXX | cd XXX |
| 移動到上一層目錄 | cd .. | cd .. |
| 顯示目前所在目錄 | pwd | cd |
| 顯示目前目錄的檔案 | ls | dir |
| 刪除檔案 | rm XXX | erase XXX |
| 刪除目錄 | rmdir XXX | rmdir XXX |
| 建立目錄 | mkdir XXX | mkdir XXX |
另外,在輸入檔名或目錄名時,可以按tab來自動完成。
不熟稔CLI的話,建議可以閱讀The designer’s guide to the OSX command prompt和The Command Line Crash Course進行惡補。
開發軟體
在開始寫點程式之前,讓我們先介紹一下有什麼推薦的編輯器。相較於靜態語言如C++、Java喜歡功能豐富的IDE(Integrated Development Environment)軟體,動態語言雖然也有一些IDE軟體,但是更多人比較偏好簡單的文字編輯器(Editor)加上命令列視窗就可以打遍天下。這是因為對表達能力強的動態語言來說,IDE提供的自動產生程式碼、編譯程式、複雜的瀏覽功能等等都不是這麼需要。
Editor文字編輯器
- Sublime Text (Windows、Linux、Mac平台)
- Notepad++ (Windows平台)
- Vim
- Emacs
IDE軟體
無論用什麼編輯器,請注意檔案的格式要儲存成UTF-8,無BOM(byte-order mark)表頭。
版本控制系統
版本控制系統可以保存所有的程式變更,記錄誰改變什麼、在什麼時候、因為什麼原因,是團隊開發不可或缺的協同工具。Ruby社群普遍使用Git這套分散式版本控制系統。雖然學習Rails不必要學會Git,但是因為Rails本身以及絕大部分的相關套件都是使用Git版本控制系統、並放在GitHub上。所以你最好還是安裝有Git並學會基本的操作。關於Git的介紹請參考附錄。
安裝Ruby及資料庫
以下是分別在Mac OSX、Ubuntu Desktop作業系統上,安裝Ruby最快速方便的方式。在上手Rails的開發之後,可以再參考附錄,依需求安裝不同開發環境。
Mac OS X Yosemite (10.10)
我們使用Homebrew這套工具來管理MacOS上的套件,這可以方便安裝一些常用的工具軟體,例如Git、MySQL,甚至是Memcached、Elasticsearch、Redis、MongoDB等等都可以透過Homebrew安裝。本書的Mac安裝步驟中會使用到Homebrew,它的安裝步驟是執行:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
過程中會跳出一個視窗詢問是否安裝XCode的命令列開發者工具(Command Line Tools),請選擇安裝。完成後回到命令列繼續Homebrew的安裝。
Mac OS雖然內建了Ruby,卻是比較舊的版本,這裡我們透過Homebrew安裝最新版的Ruby:
$ brew install ruby
完成之後輸入以下指令可以看到安裝的版本:
$ ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin13.0]
Linux (Ubuntu Desktop 14.04 LTS)
首先進行Linux更新:
$ sudo apt-get update
$ sudo apt-get upgrade
安裝必要的套件:
$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev
接著下載Ruby原始碼編譯,請參考Ruby官網下載最新2.1.5版本:
$ wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
$ tar xvfz ruby-2.1.5.tar.gz
$ cd ruby-2.1.5/
$ ./configure
$ make
$ sudo make install
安裝完成之後輸入以下指令可以看到安裝的版本:
$ git --version
git version 2.2.1
$ ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin13.0]
SQLite Manager是一套Firefox plugin提供 SQLite的GUI操作介面,可以用來方便檢視資料庫的內容。
中文版Ubuntu的預設apt-get套件伺服器tw.archive.ubuntu.com有時候不太穩,必要時你可以修改/etc/apt/sources.list換成debian.nctu.edu.tw或archive.ubuntu.com。
Windows 7
請至RubyInstaller下載Ruby 2.1.5安裝包,如果Windows 7是64位元則下載Ruby 2.1.5 (x64)。安裝過程中請點選將Ruby加入可執行的路徑(Add Ruby executables to your PATH)。
安裝成功之後,打開「附屬應用程式」的「命令提示字元」,輸入以下指令可以看到安裝的版本:
$ ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x64-mingw32]
另外,有一些RubyGems套件會需要編譯動作,所以還需要Development Kit。請下載DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe 或64位元的DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe,解壓縮放在C:\DevKit下,接著在「命令提示字元」中進入這個目錄,輸入以下指令:
$ cd C:\DevKit
$ ruby dk.rb init
$ ruby dk.rb install
另一種在Windows開發的方式則是使用虛擬機器(Virtual Machine),例如用VirtualBox來跑Ubuntu Desktop Edition,或是使用Cygwin來提供Unix-like環境。如此就可以避開Windows上的種種地雷。
RubyGems簡介
RubyGems是Ruby的套件管理系統,讓你輕易安裝及管理Ruby函式庫。你可以在RubyGems上找到所有的Ruby開源套件。另外,讀者如果想找Ruby或Rails有哪些好用的套件,也可以瀏覽看看The Ruby Toolbox,這個站依照套件的熱門程度排序,非常方便。
常用指令
gem -v 告訴你 RubyGems 的版本
gem update --system 升級RubyGems的版本
gem install gem_name 安裝某個套件
gem list 列出安裝的套件
gem update gem_name 更新最新版本
gem update 更新所有你安裝的Gems
gem install -v x.x.x gemname 安裝特定版本
gem uninstall gem_name 反安裝
執行
gem install gem_name的時候,它會在安裝完之後,自動產生此套件的RDoc和ri文件。不過有鑑於目前網路發達,往往直接 Google或是在套件官網就可以查詢到文件,所以其實不太需要在本地端機器產生文件,況且安裝的時間耗時又佔硬碟空間。要省略這個步驟,有兩種方式:
每次安裝時,加上以下參數:
$ gem install gem_name --no-ri --no-rdoc
或是新增一個~/.gemrc檔案內容如下,預設就不產生文件:
gem: --no-ri --no-rdoc
Linux的使用者需要加上sudo,例如
sudo gem install gemname。
安裝Ruby on Rails
$ gem install rails --no-ri --no-rdoc
為了節省安裝時間可不安裝文件檔,這裡加上--no-ri跟--no-rdoc參數。安裝完成之後,輸入rails -v你應該會看到Rails 4.2.0。
Ubuntu下需要用root權限安裝套件:
sudo gem install rails
使用者Windows的朋友很不幸地目前暫時需要一個手動補釘的動作才可以使用rubygem。首先請下載rubygems-update-2.2.3.gem放到C:\下:
$ gem install --local C:\rubygems-update-2.2.3.gem
$ update_rubygems --no-ri --no-rdoc
$ gem uninstall rubygems-update
接著再執行一次gem install rails --no-ri --no-rdoc安裝Rails。
安裝 Rails 開發環境的更多相关文章
- 免安裝、免設定的 Hadoop 開發環境 - cloudera 的 QuickStart VM
cloudera 的 QuickStart VM,為一種免安裝.免設定 Linux 及 Hadoop,已幫你建好 CDH 5.x.Hadoop.Eclipse 的一個虛擬機環境.下載後解壓縮,可直接以 ...
- vue開發環境搭建
npm(node package manager),nodejs的包管理器,用於nodejs插件的安裝.卸載和管理依賴. 安裝npm: 檢查npm是否安裝成功及版本:npm -v 卸載npm: 更新n ...
- Ubuntu 14.04.1 建立 Android M, Android N 開發環境 與 問題
# Modify /etc/apt/sources.list# add below 3 lines to /etc/apt/sources.listdeb http://archive.ubuntu. ...
- 幾個步驟輕鬆在windows操作系統上搭建GO語言開發環境
1. 首先下载官方GO語言安装包: https://code.google.com/p/go/wiki/Downloads?tm=2 2. 设置 GOPATH 在任意磁盘根目录新建一个文件夹,名字随意 ...
- IOSアプリケーション開発環境の構築
IOSアプリケーション開発環境の要求 1) IOSシステムの構造はそのようになっています: 2) ハードウエアの方の要求: コンピューター a) デュアルコアCPU b) 8 gメモリ(開 ...
- ASP.NET MVC + MySQL で開発環境構築
from:http://qiita.com/midori44/items/ef7cdd1d37c353e44b5f ASP.NET MVC & EntityFramework によるコードファ ...
- 【ZZ】快速學會開發Android App
http://www.cc.ntu.edu.tw/chinese/epaper/0022/20120920_2209.html 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機 ...
- [備註] 安裝與整合 xUnit 測試框架@VS2012
開發環境:Visual Studio 2012, Update 1 (必須). 說明:VS2012 已整合各測試框架的 Test Runner,包括 NUnit, xUnit 等.藉由標準的介面,可讓 ...
- Delphi APP 開發入門(二)Android/iOS設定,Hello World
Delphi APP 開發入門(二)Android/iOS設定,Hello World 分享: Share on facebookShare on twitterShare on google_plu ...
随机推荐
- 真实故事:网站遭遇DOS攻击
网站遭遇DOS攻击 一个.事件背景 长假对于IT人员来说是个短暂的休整时期,可IT系统却一时也不能停.越是节假日,越可能出大问题,以下要讲述的就是一起遭受DOS攻击的案例. 春节长假刚过完,小李 ...
- 读改善c#代码157个建议:建议7~9
目录: 建议7:将0值作为枚举的默认值 建议8:避免给枚举类型的元素提供显示的值 建议9:习惯运算符重载 一.建议7:将0值作为枚举的默认值 允许使用的枚举类型有:byte.sbyte.short.u ...
- js 执行一个字符串类型的函数
两种方法,一种是加括号一种是加叹号,new Function()的方法没有成功. var a = "function(args){console.log(args)}" undef ...
- Vertica对于所计算的时间SQL声明大全
词:强.大.所有,强烈推荐 SQL语句 查询结果 select (timestamp '2005-01-17 10:00' - timestamp '2005-01-01'); 16 10:10 se ...
- MySQL之终端(Terminal)管理MySQL
原文:MySQL之终端(Terminal)管理MySQL 前言:MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作 ...
- 学生表sid,sname,结果表cid,cname,学生成绩表sid,cid,cscore,最高要求的分数输出候补课程专门命名
--1.建表SQL: --学生表: -- Createtable createtable STUDENT ( SID NUMBERnotnull, SNAME NVARCHAR2) ) table ...
- testbench中将外部数据引入输出的方法(转载)
在进行HDL的仿真测试时,除了用较为直观的波形仿真图像以外,通过编写测试文件testbench进行仿真并将仿真结果保存在对应的文件,显得尤为重要.文件的操作主要用到读和写两种操作. 1. 读操作 读操 ...
- 使用Advanced Installer将.exe程序重新封装为.msi程序
原文:使用Advanced Installer将.exe程序重新封装为.msi程序 使用Advanced Installer将.exe程序重新封装为.msi程序 首先安装Advanced instal ...
- (大数据工程师学习路径)第四步 SQL基础课程----select详解
准备 在正式开始本内容之前,需要先从github下载相关代码,搭建好一个名为mysql_shiyan的数据库(有三张表:department,employee,project),并向其中插入数据. 具 ...
- HDU ACM 1068 最大独立集
意甲冠军:n同学.有些学生将有宿命的男性和女性成为恋人.收集注定要成为爱好者求学生的最大数目不存在. 分析:独立设置,顶点设定图的一个子集,在休闲2不连续: 二分图:最大独立集 = 顶点 - 匹配的最 ...