Rails 在 Windows 平台上搭建 Ruby On Rails 开发环境

hcrazy · 2013年03月12日 · 最后由 leslin123 回复于 2013年08月24日 · 11622 次阅读

原文链接:http://www.hcrazy.com/?p=25 在windows平台下开发rails应用程序,可以按照以下方式搭建开发环境,让你以最快的速度领略到ruby on rails的神奇。

首先需要准备以下内容

1、windows下的ruby安装包,本人使用ruby1.9.2版本,下载地址:

http://rubyinstaller.org/downloads/ 选择Ruby 1.9.2-p290

2、ruby打包工具:RubyGems. 我们可以通过该工具下载rails及其所需的各种组件。经测试,安装完上面的ruby程序(我下载后的安装包全名为:rubyinstaller-1.9.2-p290.exe),BubyGems已经集成在里面了,后面介绍如何查看。

3、rails 框架。rails是用ruby编写的web开发框架,要开发rails应用程序,必然要下载rails了,这个就可以使用上面所说的RubyGems来轻松安装了

4、数据库。rails支持各种数据库,最简单的方式就是使用嵌入式的sqlite3数据库,这里就以sqlite3为例,下载地址:

http://www.sqlite.org/download.html 选择Precompiled Binaries for Windows

然后下载前两个:sqlite-shell-win32-x86-3071502.zip、sqlite-dll-win32-x86-3071502.zip ,后面介绍如何使用,先将下载后的压缩包放到任意目录下即可。

5、安装DevKit。DevKit 是windows平台下编译和使用本地C/C++扩展包的工具。它就是用来模拟Linux平台下的make, gcc, sh来进行编译。

ok,准备工作完成,下面开始安装rubyinstaller-1.9.2-p290.exe

安装过程非常简单,需要注意的就是选中如图所示的后两项,这样就自动将ruby设置到windows的环境变量里去了,省了你再设置环境变量的功夫了,一步到位,安装顺利完成。

接下来,就是运行cmd.exe了,输入ruby -v检测ruby的安装版本,如下图所示:

如果显示出你的ruby的安装版本了,就表示你安装成功了。接下来,继续输入gem -v

就像前面我提到的,RubyGem默认集成到rubyinstaller安装包里的,我这里显示的是gem版本为1.7.2。

好了,再往后就是安装rails及相关依赖组件了,命令行输入:gem install rails

我在公司的电脑里安装时,没有遇到问题,直接跳到下一步(后面介绍)。但是,在我家里电脑安装时,则遇到如下问题:

经过不断的在网上搜索,分析,最终goooge到了我要的答案,原因就是网络原因,家里的网速太慢(4M),导致连接 rubygems.org失败,因此会出现上面的错误,幸运的是,淘宝网提供了镜像服务,只要按照下面的几个步骤后,就可以正常安装rails了。

1、打开http://ruby.taobao.org/

2、按照网站上的说明,依次输入下面的命令:

gem sources --remove https://rubygems.org/ gem sources -a http://ruby.taobao.org/ gem sources -l

最后得到结果

*** CURRENT SOURCES ***

http://ruby.taobao.org

不过,我在执行上面步骤时,有些不一样,执行gem sources -l 后,结果如下:

需再次执行gem sources --remove http://rubygems.org/http不是https。然后再执行,注意,这次按照上面列表上显示的是

gem install rails 就ok了。

rails安装成功了吗?呵呵,还没有,上面那个截图只是一部分,还有下面一部分,显示的是错误:

ok,这个错误也很明显,就是安装json的组件包时出现了问题,需要使用DevKit工具才能安装。这个工具在开始的准备工作里第5条中略微提了下,这里提供下载链接:http://rubyinstaller.org/downloads/

然后,滚动条使劲往下拉,可以看到 Development Kit 黑体部分,选择DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe进行下载即可。下载后解压到一个目录,我的是: D:\Ruby\DevKit。然后命令行切换到D:\Ruby\DevKit目录,依次执行以下命令

ruby dk.rb init

ruby dk.rb review

ruby dk.rb install

如下图所示:

然后再运行一遍:gem install rails,此时就会真的成功了!恭喜恭喜!还剩下最后一个部分,就是安装sqlite3数据库。

将本文开始部分准备的关于sqlite3的两个压缩包解压缩,得到3个文件,复制到ruby的安装子目录bin下,我这里是:D:\Ruby\Ruby192\bin。然后命令行输入:gem install sqlite3

到这里安装工作总算完成了,下面就来创建一个简单的应用爽爽吧。

首先创建一个你自己的工作目录,我的是:D:\Ruby\works,然后进入cd D:\Ruby\works,命令行输入:rails new demo

此时,rails会在你的works目录下创建一个demo项目,demo文件夹里默认安装了一系列文件,暂时先不用理会他们,等我下次在给大家详细介绍,呵呵。

当然,在这里,我也遇到了一个问题(其实,如果网络够好的话,没有这么复杂,这么多问题,问题就在于我们天朝的网络了!!!),就是在运行rails new demo 期间,卡在run bundle install这里了。

解决办法:重新执行命令:rails new demo --skip-bundle,进入到demo目录下,然后再次运行bundle install ,哈,失败!但是,至少出现内容了:

连接不上https://rubygems.orghttps的原因,好说,进入到demo目录,找到Gemfile文件,打开,将第一行:source,看来是 'https://rubygems.org' 修改为:source 'http://rubygems.org',这里就不截图了,呵呵。

再次进入到demo目录,运行bundle install,怎么样?成功了否?还是不行?好家伙,好吧,还记得前面提到的淘宝镜像吗,替换成它,这网速总该可以了吧,继续修改Gemfile文件,将第一行source 'http://rubygems.org' 再改为

source 'http://ruby.taobao.org/'

运行bundle install ,闭上眼睛,20秒后睁开,哇。。。这次是真的ok了,呵呵,有图有真相:

Complete!,还有耐心吗?呵呵,只要你再输入最后一个命令,你就可以通过浏览器运行你的app了。

demo目录下命令行输入:rails server ,上图:

看到了吗?你的rails应用程序服务器启动成功了,赶快打开浏览器体验一下吧:

输入:http://localhost:3000 最后一张图:

关于rails的开发环境在windows下的搭建过程就简单介绍到这里,欢迎大家继续关注,我会持续学习,持续更新的!

共收到 14 条回复

不如装个虚拟机,linux

你需要railsinstaller

真麻烦,win下包括下载10分钟就搞定了

其实真实的情况是没楼主写的那么麻烦,win下搭建环境,包括下载安装包之类的玩意10分钟就搞定了

还是在linux上比较顺畅

vagrant

railsinstaller直接全有了

如果公司代理不能下载rails工程需要的gem,使用ntlmaps做再次代理

可以去bitnami.org看一下,有Rails windows下的安装包,我一直在用

#4楼 @ywjno 确实是这样。Win 下搭建环境并不是很麻烦。很多所谓的难,只是人云亦云啦。

#10楼 @skandhas 而且如果打算切换不同的ruby版本,装完ruby后通过一个叫RapidEE的软件修改系统path再保存一下,跟使用rvm是一样的效果

PS:被mruby的代码提交者at了,我好鸡冻

#11楼 @ywjno 嗯 有可能是大家对 windows 有个先入为主的观念吧, 觉得难配置。 现在有 mingw 和 cygwin 的帮助下, 大多数的开源项目都能编译运行,没有想象的那么难。另外,在捣鼓的过程中也练习了动手能力和思考能力。呵呵 ;) 还有我也是菜鸟啦,共同交流学习吧!

这个错误为什么啊,兄弟们?谢谢了! C:\Ruby\demo>rails server C:/Ruby/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7-x86-mingw32/lib/sqlite3.rb:6:in require': cannot load such file -- sqlite3/sqlite3_native (LoadError) from C:/Ruby/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7-x86-mingw32/lib/sqli te3.rb:6:inrescue in ' from C:/Ruby/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7-x86-mingw32/lib/sqli te3.rb:2:in <top (required)>' from C:/Ruby/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime. rb:72:inrequire' from C:/Ruby/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime. rb:72:in block (2 levels) in require' from C:/Ruby/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime. rb:70:ineach' from C:/Ruby/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime. rb:70:in block in require' from C:/Ruby/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime. rb:59:ineach' from C:/Ruby/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime. rb:59:in require' from C:/Ruby/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:i nrequire' from C:/Ruby/demo/config/application.rb:7:in <top (required)>' from C:/Ruby/lib/ruby/gems/2.0.0/gems/railties-3.0.12/lib/rails/commands .rb:28:inrequire' from C:/Ruby/lib/ruby/gems/2.0.0/gems/railties-3.0.12/lib/rails/commands .rb:28:in block in <top (required)>' from C:/Ruby/lib/ruby/gems/2.0.0/gems/railties-3.0.12/lib/rails/commands .rb:27:intap' from C:/Ruby/lib/ruby/gems/2.0.0/gems/railties-3.0.12/lib/rails/commands .rb:27:in <top (required)>' from script/rails:6:inrequire' from script/rails:6:in `

'

咱,10秒bundle 完,救星呀

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册