安装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

在这一章中,我们将介绍如何安装 Ruby on Rails 的开发环境。开发 Rails 的环境需要:

  • Ruby 2.2.2 以上版本或 JRuby ,本书使用 2.4.0 。
  • 数据库系统, Rails 默认使用 SQLite 可以作为新手开发练习之用,正式上线环境则推荐使用 MySQL 或 PostgreSQL 。
  • Ruby on Rails ,本书适用 5.0+ 版本。

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

我们使用 Homebrew 这套工具来管理 MacOS 上的套件,这可以方便安装一些常用的工具软件,例如 Git 、 MySQL ,甚至是 Memcached 、 Elasticsearch 、 Redis 、 MongoDB 等等都可以透过 Homebrew 安装。本书的 Mac 安装步骤中会使用到 Homebrew ,它的安装步骤是执行:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

过程中会跳出一个视窗询问是否安装 XCode 的命令列开发者工具 (Command Line Tools) ,请选择安装。如果没有的话,请手动执行 xcode-select —install 这个指令。

完成后回到命令列继续 Homebrew 的安装。

Mac OS 虽然内建了 Ruby ,却是比较旧的版本,这里我们透过 Homebrew 安装最新版的 Ruby :

$ brew install ruby

完成之后输入以下指令可以看到安装的版本:

$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]

Windows

请至 RubyInstaller 下载 Ruby 安装包,如果 Windows 是64位元则下载 (x64) 的版本。安装过程中请点选将 Ruby 加入可执行的路径 (Add Ruby executables to your PATH) 。

我们开发用的 SQLite3 数据库函式库在 Windows 上不支援 Ruby 2.2 的版本,请下载 2.1 的版本。(2015-06-09 的实验结果,后来有没有支援不清楚)

安装成功之后,打开「附属应用程式」的「命令提示字符」,输入以下指令可以看到安装的版本:

$ 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

安装Ruby on Rails

$ gem install rails --no-ri --no-rdoc

为了节省安装时间可不安装文件档,这里加上—no-ri跟—no-rdoc参数。安装完成之后,输入rails -v你应该会看到 Rails 5.1.0 。

使用者 Windows 的朋友可能需要手动安装,请参考 INSTALLING USING UPDATE PACKAGES

中国大陆地区的朋友如果碰到网络连线问题(你懂的),请改使用RubyGems镜像- Ruby China。