安裝 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文字編輯器

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 開發環境的更多相关文章

  1. 免安裝、免設定的 Hadoop 開發環境 - cloudera 的 QuickStart VM

    cloudera 的 QuickStart VM,為一種免安裝.免設定 Linux 及 Hadoop,已幫你建好 CDH 5.x.Hadoop.Eclipse 的一個虛擬機環境.下載後解壓縮,可直接以 ...

  2. vue開發環境搭建

    npm(node package manager),nodejs的包管理器,用於nodejs插件的安裝.卸載和管理依賴. 安裝npm: 檢查npm是否安裝成功及版本:npm -v 卸載npm: 更新n ...

  3. 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. ...

  4. 幾個步驟輕鬆在windows操作系統上搭建GO語言開發環境

    1. 首先下载官方GO語言安装包: https://code.google.com/p/go/wiki/Downloads?tm=2 2. 设置 GOPATH 在任意磁盘根目录新建一个文件夹,名字随意 ...

  5. IOSアプリケーション開発環境の構築

    IOSアプリケーション開発環境の要求 1) IOSシステムの構造はそのようになっています: 2) ハードウエアの方の要求: コンピューター a)    デュアルコアCPU b)    8 gメモリ(開 ...

  6. ASP.NET MVC + MySQL で開発環境構築

    from:http://qiita.com/midori44/items/ef7cdd1d37c353e44b5f ASP.NET MVC & EntityFramework によるコードファ ...

  7. 【ZZ】快速學會開發Android App

    http://www.cc.ntu.edu.tw/chinese/epaper/0022/20120920_2209.html 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機 ...

  8. [備註] 安裝與整合 xUnit 測試框架@VS2012

    開發環境:Visual Studio 2012, Update 1 (必須). 說明:VS2012 已整合各測試框架的 Test Runner,包括 NUnit, xUnit 等.藉由標準的介面,可讓 ...

  9. Delphi APP 開發入門(二)Android/iOS設定,Hello World

    Delphi APP 開發入門(二)Android/iOS設定,Hello World 分享: Share on facebookShare on twitterShare on google_plu ...

随机推荐

  1. 【JAVA】【NIO】3、Java NIO Channel

    Java NIO和流量相似,但有些差异: ·通道可读写,流仅支持单向.读或写 ·异步通道读取 ·通道读写器,他们是和Buffer交替 道的实现 下面是Java NIO中最重要的通道的实现: ·File ...

  2. Redis测井系统

    什么是 SLOWLOG Slow log 是 Redis 用来记录查询运行时间的日志系统. 查询运行时间指的是不包含像client响应(talking).发送回复等 IO 操作,而单单是运行一个查询命 ...

  3. struts2于validate要使用

    package com.test.action; import com.opensymphony.xwork2.ActionSupport; import com.test.model.User; p ...

  4. JS学习笔记-OO创建怀疑的对象

    问了.工厂介绍,解决重码 前面已经提到,JS中创建对象的方法.不难发现,主要的创建方法中,创建一个对象还算简单,假设创建多个类似的对象的话就会产生大量反复的代码. 解决:工厂模式方法(加入一个专门创建 ...

  5. 用python做自己主动化測试--对server端的自己主动化測试(3)-很多其它http client实例

    上一篇中仅仅是实现了一个非常easy的http client功能,request还提供了keep alive, SSL, 多文件上传,cookie 管理功能,http requests头管理等丰富的功 ...

  6. secureCRT使用退格键(backspace)出现^H解决的方法

    刚新装了python-3.4.1,使用secureCRT连接上去,可是我在进入后,输入回格键时,屏幕显示的是^H,这个让人受不了.最终在网上找到了解决的方法,仅仅要改动一下secureCRT的配置就可 ...

  7. 于Eclipse传导C/C++配置方法开发(20140721新)

    Eclipse 它是一个开源.基于Java可扩展的开发平台. 在其自己的.它只是一个框架和一组服务.对于通过插件组件构建开发环境. --从百度百科的短语. 简单的说Eclipse 是免费的开源的Jav ...

  8. js在web绘制在页上的圆

    在web页,要画一个圆.有很多方法,SVG.canvas我们能够得出. 但文章没有使用这两种方法,但使用的div.div通常一个矩形.但是,假设一个圆形的样式设置border-radius有可能div ...

  9. 解决win10客户机本地账户登陆导致远程桌面没法访问问题

    情景:客户机器如果是win10本地账户,我们远程桌面连接是可能会没法访问. 如果客户机器切换到win10 Microsoft账户登录,远程桌面就可以访问了(当然用户肯定不能给你说自己的Microsof ...

  10. [Visual Studio]透过Visual Studio 2012的选择性贴上将XML与JSON直接转成对应的类别

    原文:[Visual Studio]透过Visual Studio 2012的选择性贴上将XML与JSON直接转成对应的类别 在开发专案时若碰到要串接服务或是他人的API,常常避免不了都要面对XML或 ...