22p第3章安装Rais 本是1.8.5。这个版本可以很好地运行Rail,不过在使用断点时可能会遇到些问 题。) Ruby on Rails。本书采用的 Rails版本是12版。 些必要的库。 数据库。我们在本书中使用了 MySQL50.2版本。 作为开发之用,这些就足够了(当然,你还需要一个编辑器,我们稍后会单独讨论 这个话题)。不过,如果你要部署应用程序,就—至少还需要安装一个生产web 服务器,以及一些能够提升Rail运行效率的支持代码。从第615页开始,我们会用整整 章的篇幅来讨论这个话题,所以现在就暂且略过吧。 那么,怎么把所有这些东西安装起来呢?这取决于你的操作系统… 32 Windows上的安装 Installing on Windows 如果你用 Windows来做开发,恭喜你,因为 Curt hibbs已经把开始学习 Rails所需 的所有东西都打包在一起了:你只要下载安装 Instant Rails,里面就已经包含了Ruby、 Rails 和 MySQL(版本4),并且所有的东西也都组装完毕。 InstantRails甚至还包含了一个 Apache web服务器,并且提供了往上部署应用程序所需的支持代码,这样你就可以轻松 地部署高性能的web应用。 1.首先创建一个目录来存放 InstantRails。这个目录的路径不能包含空格(所以 c:\ Program Files就不是一个好的选择)。 2.访问 InstantRails网站2,下载最新的zip安装包(大概有50MB,所以,如果你的网 络连接比较慢的话,去喝杯茶吧)。把安装包放到步骤1创建的目录中。 3.解开压缩包—如果系统没有自动解压的话 4.进入 InstantRails目录,双击 InstantRails图标(一个大大的红色“I”)启动 InstantRails 如果看到一个弹出窗口问你是否要生成配置文件,选择“OK”。 如果看到一个安全警告窗口提示防火墙封锁( block)了 Apache,呃……我们不会命 令你继续封锁或者解开封锁。作为教学,本书不会用到 Apache,所以是否封锁它都 不要紧。出于安全考虑,最保险的做法是选择“ Keep Blocking”:如果你很清楚自 http://instantrails.rubyforge.org/wiki/wiki.pl Web开发敏捷之道一应用Rais进行敏捷Web开发,第2版
..- 22 安装 本是 1. .5 .这个版本可以很好地运行 .不过在使用 断点 可能会遇到些问 ) • Ruby on i l 的R il 本是 1.2 一些必要 的 数据 在本 y S .0.22 版本 作为开发之用,这些就足够了 〈当然 ,你还需要一个编辑器 我们稍后会单独讨论 这个话题 不过 如果你要部署 至少 还需要安装一个生产 服务器,以及一些能够提升 ai s运行效率的支持代码.从第 5页开始,我们会用整整 一章的篇 在就暂且略过吧 把所有这 装起来呢 这取决于 . 3.2 Windows Installing on 如果你用 s米做开发,恭喜你,因为 rt Hibb 始学习Rail 的所有东西部打包在一起了 你只要下载安 nt il .里 就已经包含 il y S (版本 ,并且所 的东 也都 装完毕. 1nstantRai1 甚至还包含 Apache web 服务 ,并且提供了往上部署应用 序所 持代码 就可 轻松 地部署高性能 b应用。 录 来 存 放InstantR ail s ., 这 个 c ,\Program Fil 不是 • ta Rails 最新 B. 如 果 络连接比较慢的话,去喝杯茶吧) 把安 包放到步 创建 3. 开压 如果系 动解压 R a l s nsta ils 大大 色" I" )启动 1nstanlRails. 如果看到 你是否要 配置文件 果看到 封锁 oc k) .. 不会命 令你继续封锁或者解开封锁.作为教学,本书不会用 .所以是否封锁它都 不要 .出于安全考虑,最保险的做法是选 Blocking" 果你 消楚 2 hctp: l linstantrails.rubyforge .org/wiki/wiki .pl WebR6t1tM. !JlftJ il 近fi~WebR6t JtN
3.2 Windows上的安装23 己在做什么,并且机器上也没有运行ⅡS,也可以放开这个端口,然后使用 A aches 这时你应该会看到 InstantRails的窗口出现了,在这里你可以监控 Rails应用。 不过我们的学习会更深入一些,因此我们要使用命令行窗口一一只要点击 InstantRails左上角的“I”字按钮(那是一个黑色的“I”字,右下角有一个红点), 并从菜单中选择“ Rails Applications…”,再选择“ Open Ruby Console Window 就行了。这时你会看到一个命令行窗口弹出来,当前的路径是rai1sapp目录, 如图3.1所示。输入ruby-v和xai1s-v就可以验证当前使用的Ruby与 Rails 版本。 I Istant Ra NOntron ails.apps -appa)dir Open pity Console window tantRails\rails apps 12.. 256 bytes free \Doun loads\Instant Raila\Instant Rail 图3.1 nstantRa开启命令行 到这里,你的安装已经完成了。不过在直接跳到下一章之前,还有两件事情需要提 醒你。 首先(也是最重要的),如果你想在控制台输入命令,必须遵从刚才的步骤(点击 “1”字按钮……),从 Instant Rails菜单开启控制台。如果使用普通的 Windows命令行, 有些东西可能不会正常工作。(为什么?因为 InstantRails很独立,不会把它自己安装到 Windows的全局环境中去。也就是说,其中需要的程序默认情况下不在 Windows的系统 路径中。当然你也可以把这些程序都加到系统路径,然后从普通的命令行窗口使用 Rails, 这也只是举手之劳。不过,我觉得通过 InstantRails来使用 Rails也就够简单了。) Web开发敏捷之道一应用Rai进行敏捷Web开发,第2版
'd ..... 3.2 indows 的安装 己在做什么 ,并且机器上也没有运行 Il .也可以放开这个端口,然后使用 Apache . 这时你应该会看到 an il s的窗口出现了 ,在这里你可以监控 s应用 不过我们的学习会 更深入 一些 ,因此我们要使用命令行窗口一一只要点击 ntR il 左上角 的 '"I • 并从菜单中选 '" il Applications. .. " 选择.. Open Ruby Console Window " 行了 。这时你会 到一 命令行 ,当前 路径是 i l p目录 如图 ub -v 前使 by il 版本 (tall ~:::::H "'"但嚼 ..嘟" 一-一←'一一-一-----一一一 1;;1 ;;;/ InstantRails- 到这里,你的安装已经完成了 .不过在直接跳到下一章之前.还有两 件事情需要提 醒你. 首先〈也是最重要的) 想在 入命令,必 遵从刚才的步 按钮 .从 s菜单开启控制 .如果使用普通 s命令行. 西可能不会正常工作 (为什 因为 ta 1& 不会 己 安 Wi ndo 全用环境 况下 在W ndow 路径中 然你也可以把这些程序都加到系统路径,然 后从普通的命 令行窗口使 i l 也只是拳孚之劳 .不 我觉得通过 米使用 i l 也就够简单 了. ) Weblf6t1£ ,ill房Rails 蜜WeblfJ 1iN
24p第3章安装Rais 其次,任何时候你都可以将 Rails升级到最新版本,只要调出 Instantrails控制台 输入下列命令: C: \rails_ apps> gem update rails --include-dependencies 好了, Windows用户的安装完成了。现在你可以直接跳到第26页,第3.5节“开发 环境”,我们在那儿见。 33 Mac OS X上的安装 Installing on Mac OS X 在OSx10.46上已经默认安装了Ruby3。要在这上面安装 Rails I的话,只要先装上 Ruby Gems,然后再安装 Rails和数据库就行了 但有趣的是,很多Mac用户选择了另一条路:他们不使用系统内建的Ruby,而是选 用一个现成的安装包(例如 Ryan Raaum制作的 Locomotive),或者使用 Mac Ports之类 的包管理系统来安装。 使用 Locomotive之类的安装包似乎无须动脑子,但它也有不足之处:其中没有包含 MySQL数据库,而是提供了一个名叫 SQLite的数据库—这个数据库对于小型应用很 合适,也许它正是你所需要的。不过本书中的例子使用了 MySQL,而且大部分 Rails网 站也都使用MySQL或者Postgres。此外,Locomotive采用的web服务器是lighttpd,这 个服务器本身也很好,但本书中的例子使用的却是 WEBrick—当然在两种服务器上都 可以运行这些例子,不过你需要对书中的指令加以调整才能让它们运行在lighttpd上。所 以,我们建议你看看下面的指导,尝试自己动手安装 Rails环境;如果你觉得这实在太麻 烦,那么就安装 Locomotive好了(详情请看下一页的介绍) 自己动手,在Mac上安装 Rails Roll-Your-Own Mac Installation 已经准备好挽起袖子自己动手安装 Rails了吗?你真是选对了。实际上,下面的安装 步骤实在太简单了,为了增加一点悬念我们才逼着你提前做选择的。 在这一节里,我们要把运行 Rails所需的软件全部安装到系统上。至于安装的方法 么,有多少Mac开发者就有多少种安装方法4。安装分为几个步骤,每个步骤又或多或 少地依赖于你所运行的OSX版本,所以我们决定还是把“详述安装过程”的任务交给 网上的文章。我们找到了两篇质量上乘(并且经过充分检验)的文章,介绍如何在Mac 上安装 Rails 3osx10.5将会默认安装 Rails. 4也许还要多,譬如说我就很少会两次用同一种方法装一个软件 Web开发敏捷之道—应用Rais进行敏捷Web开发,第2版
24 章 安 i l 其次,任何时候你都可以将 s升级到最新版 .只要调 ta i l 控制台 输入 F列命 飞rails_a pps> gem updat e r ails - -incl ude -dependencies 好了. do 完成 你可 直摆 到第 开发 环境 3.3 MacOSX Installing on 置acOSX X 10 .4 .6 认安 3 . 要在 上而 il 先装 ubyGems. 装Rail 据库就行 但有理的是,很多 JIj户选择了另 一条路 他们不 用系统 建的 by .而是选 一个现成的安装包 (例如 an aaum 制作 Locomot ive 或者 rts 之类 的包管理系统来安装 使用 oc e之类的安装包似乎无须动脑子 ,但它也有不足之处其中没有包含 ySQL 数据库 叫SQLite 数据 这个 库对 小型 合适,也许它正是你所需要的.不过本书中的例子 用了 y S L.而且大部 s网 站也都使用 L或者 es omOUve 的web 是l ghttpd. 个服务器本身也很好,但本书中的例子使用的却 EBri 一当然在两 务器上 可以运行这些例子 ,不 你需要对书中 指令 才能 它们运行在 l i ghtt pd上. 以, 们这 你看看下面 指导 尝试自 i l 觉得 头'在太 烦,那么就安装 Loc e好了(详情请看下一页 介绍) 0 自己动手,在 c上安在 il RolI-Your-Own Mac Installation 已经准备好挽起袖子臼己动手安装 i l s了吗 你真 选对 际上 的安 骤实在太简 加- 前做选择 在这 节里,我们要把运行 s所需的软件全部安装 系统上.至于 装的方法 么,布多 c开发者就有多少种安装方法飞安装分 个步骤 个步骤又或多 少地 赖于你所运行 网上的文 .我们找到了两~质量上乘 (并且经过 分检验) 的文章,介绍 何在 ac 安装 3 OSX 将会默认寄萃 il 也许还要 就很 用 同 种 方法住一 WebHdfttf~Lil! if !tlH WebHJ /fN
3.4 上的安装 首先介绍的是DanBenjamin的文章,“BuildingRuby,Rail,lighttpd,andMySOLon Tiger”。这篇文章手把手地教给读者如何下载和安装所有需要的软件。文章的地址是: .http://hivelogic.com/articles/2005/12/01/ruby_rails_lighttpd_mysql_tiger 另外,也可以让电脑帮你做一些低级的工作。OSX上面至少有两个包管理系统, 它们可以处理软件的下载、依赖管理、安装和升级等工作。 James Duncan Davidson写了 篇精彩的文章,介绍如何用 MacPorts这个安装包管理系统来安装 Rails(当 Duncan写 这篇文章时, Mac Ports还叫 Darwin Ports)。 Duncan的做法有一大好处:安装包管理器 会帮你搞定依赖关系,所以每个组件的版本升级或者撤销升级都很容易。不过这种做法 也有一个小小的缺点:软件安装的位置就全都交给安装包管理器去控制了,所以你要么 不用 Mac Ports,要么就全听它的—在实际工作中,这其实不是什么大问题。总之 Duncan的文章就在这个地址: ehttp://duncandavidson.com/essay/2006/04/portsandbox 把这两篇文章都读一下,选择一种方式,然后照着做吧。我们在这儿等着……等你 回来以后,我们一起来讨论编辑器的问题。 在Mac上安装 Locomotive Locomotive mac Installation 在http://locomotive.raaum.org可以下载Locomotive.下载到的是一个,dng文 件,将它装载( mount)起来,把其中的 Locomotive文件夹拖到你喜欢的地方,进入该 文件夹,运行 Locomotive.app就可以启动 Locomotive了(不过首先得认真欣赏那个漂 亮的火车图标) Locomotive允许你导入现有的Rais项目,当然也可以新建项目。在主窗口上列出 了它管辖之下的所有Rais项目,你可以启动或是停止其中任何一个。应用程序文件的 编辑操作则是在 Locomotive之外进行的。 如果你看了 Windows平台的安装步骤,你应该还记得那里的一个警告:应该在 InstantRails提供的控制台中输入 Rails命令。在这里也一样:当使用 Locomotive时,必 须用它提供的控制台来输入命令。通过 Application→ Open Termina1菜单就可以访 问 Locomotive的控制台。 34 Linux上的安装 Installing on Linux 如果你是那种“用磁铁在硬盘上刻二进制码”的 Linux用户, Dan Benjamin的Mac安 装指南应该就够用了。一个警告:先弄清楚你的机器上是否已经安装了Ruby,因为预先安 Web开发敏捷之道一应用Rals进行敏捷Wb开发,第2版
3.4 Li 安装 首先介绍的是 an amin " Building Ruby. Rails, LightTPD. and MySQL on Tiger " 这篇文 读者 和 安装所有 要 的 • http l/h 凹elog ic.com articles /2005 /12/01/ruby_rails_1ight tpd_mysq _t iger 另外 ,也可以让电脑帮你做 些低级的工作 至少有两个包管理 它们可以处理软件的下载、依颜管理、安装和升级等工作 James Duncan av id on 文章 绍如 装包 i l u n 这篇文章时 cPon 叫D rwinP rt 0 Dun 做法 包管理器 会帮 你搞定依赖关系 ,所以 的版本 者撤销升级都很容易 过这种做法 也有一个小小 点: 软件安装 位置 全部交给安装包 理器 制了 ,所以你 不用 ac .要么就全听它的一一在实际工作 ,这其实不是什么大问题。总之 Dun an 文章 个地址 • http : / /duncandavidson .com/essay /2 006/0 4/ portsandbox 把这两篇 章都读一下,选择一种方式.然后照着做吧 我们在这儿等着 等你 回来以后,我们一起米讨论编辑器的问题 安襄 ti Locom otive Mac Installation / / oco a aum 可可以下 Loc v e 。下载到 一个 dmg文 将它装载 起来 e文件央拖到你喜欢的地方,进 件夹 运行 L o 可以 (不过 先得认真欣赏那 的火 图标) • Loc ve 现有 目, 当然也可以新述 在主 上列 它管辖之下的所有 s项目,你可以启动或是停止其中任何一个.应用程序文件的 编辑操作则是在 Loc e之外进行的 如果你看了 n d 平台的安装步骤 ,你应该还记得那里的一个警告 应该在 In tan tR ail 输入R 命令 在这里也 Locomoti 须用它提供的控制台米输入命令.通过 App Op Termin 单就 Loc e的控制台 3.4 Linux Installing on Linux 如果你是 在硬盘上 二进制 "的 用户 Dan am 的Mac 装指南应该就够用了 一个警告先弄泊 你的 上是否已经安装了 .因为预先安 Web ff6tIt 2J!! 0, Rails 仔破草WebffJ 1i& -
26p第3章安装Rais 装的Ruby可能没有你需要的某些库。我(Dave)个人总是把Ruby安装在用户主目录底下 的某个目录里(例如-/ruby),然后把-/xuby/bin加入到系统路径中 至于我们这些凡人,还是用安装包管理工具来安装需要的软件比较实在(基本上跟 James Duncan Davidson介绍的在Mac上的安装方法差不多)。不过由于 Linux发行的版本 千差万别,我们不打算在这里做详细介绍。下面这份在线参考文档是针对 Ubuntu(一个流 行的基于 Debian的发行版本)的安装指南—准确说是针对“ Dapper Drake"”这个发行版 本的。警告:当你看到这段文字时,这些安装方法有可能已经过时了。 .http://wiki.rubyonrails.com/rails/pages/railsonubuntudebiantesting AndUnstable http://wiki.rubyonrails.com/rails/pages/railsonubuntu 35开发环境 Development Environments 编写 Rails程序的日常工作相当简单。每个人的工作方式都有所不同,下面是我 (Dave)的工作方式。 命令行 The Command line 我的很多工作都在命令行完成。虽然有越来越多的GU工具可以帮助我们生成和管 理 Rails应用,但我感觉命令行仍然是最好用的工具。值得花一点时间去熟悉你所使用的 操作系统提供的命令行:学会如何在其中编辑命令,如何搜索和编辑前面输入过的命令, 如何快速补全文件名和命令。5 版本控制 Version Control 我把所有工作都放在版本控制系统上—现在用的是 Subversion。创建一个新的 Rails项目,我就会立即把它签入( check in) Subversion;每当所有的测试通过时,我就 会把修改过的文件全部签入。一般而言,我会每小时签入数次代码。 如果项目有多人一起开发,可以考虑搭建一个持续集成( continuous integration,CI) 系统:每当有人签入任何修改过的文件时,CI系统就会签出整个应用程序,然后运行所 有测试,以确保你的修改没有造成任何破坏。此外,CI系统让客户也可以随时使用应用 5我们常说的“ab补全”是 Unix shell(例如Bash和zsh)的通行标准。只要输入文件名的前几个字持,敲一下“ab”键, shel就会查找与之匹配的文件,并尝试自动补全文件名, Windows XP命令行也默认提供了同样的行为,在此前的 windows 版本上也可以使用这一功能,只要使用微软公司提供的 Tweak这个免费软件就行了 Web开发敏捷之道一应用Ras进行敏捷Wb开发,第2版
26 安装 i l 装的 y可能没有你需要的某些库.我< Dav 个人总是把Ruby 装在 底下 的某个目录里(例如 ruby 然后 by 到系统路径 至于我们这些凡人,还是用安装包管理工具米安装需要的软件比较实在(基本上 uncan vidson 介绍 的安 方法 不过 Li 千差万别,我们不打算在这里做详细介绍.下面这份在线参考文档是针对 Ub 个流 行的基于 De an的发行版本)的安装指南 一准确说是针对 "3k "这个发行版 本的.警告=当你看到这段文字时,这些安装方法有可能已经过时了 • http : / / wiki .rubyonr ails.com/rails/pages/Ra i lsOnUbuntuDebianTesting - AndUns t a b l e • http // 工ki .rubyonrails .com/rails /pages /RailsOnUbuntu 3·5 Developlllent Environlllents 编写 ai s程序的日常工作相当简单.每个人的工作方式都有所不同, 下面是 < av 方式 命令行 The Command Line 我的很 工作都在命令行完 虽然 来越 工具可以帮助 生成 s应用.但 感觉命令 仍然是最好 的工具。 去熟 你所 作系统提供的命令行 会如何在其 刺命令 索和编辑前面输入过 命令 何快速补 文件名和命 版本控制 Version Control 我把所有工作都放在版本控制系统上一一现在 r s on il 我就会 它签入 <ch田k in ) Subversion: 会把修改过的文件全部签入o般而 ,我会每小时签入数次代码 如果项目有多人 起开发,可以考虑搭建一个持续集成 nuo integration. CI ) 系统每当有人签入任何修改过的文件时 统就会 整个 然后 有测试,以确保你的修改没有造成任何破坏.此外 CI系统让客户也可以随时使用应用 扎们 的'"ta .. shell (剖如 "' #准 几个 shell j\. 主件 并尝 Windows 命令行也 此前 Window 本上也可 这一 是使 微软公 ak Ul 就行 1. WeblfJtIi£理2 一-.5fI#Rails F.iIN Web Jf. Jt5