安装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文字编辑器
- Sublime Text (Windows 、 Linux 、 Mac 平台)
- ATOM (Windows 、 Linux 、 Mac 平台)
- Vim
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。
