Windows下安装Ruby on Rails记录(10月22日update关于gem下载的补充)_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Windows下安装Ruby on Rails记录(10月22日update关于gem下载的补充)

Windows下安装Ruby on Rails记录(10月22日update关于gem下载的补充)

 2010/11/17 22:56:57  weimingtom  http://weimingtom.javaeye.com  我要评论(0)
  • 摘要:Windows下安装RubyonRails记录(注:编辑中,未完成)1.了解什么是RubyonRailsRails是一个很出名的Web开发框架,而RubyonRails是Rails的Ruby实现。Ruby则是一种面向对象脚本语言,本身和Rails没有什么必然关系(反倒是RoR让Ruby出名了OTL)2.大致浏览安装教程http://rubyonrails.org/download如果想了解更多,还可以参考官方的wiki(有相应的中文翻译)http://wiki.rubyonrails
  • 标签:Windows安装Ruby

Windows下安装Ruby on Rails记录

(注:编辑中,未完成)

1. 了解什么是Ruby on Rails
Rails是一个很出名的Web开发框架,而Ruby on Rails是Rails的Ruby实现。
Ruby则是一种面向对象脚本语言,本身和Rails没有什么必然关系(反倒是RoR让Ruby出名了OTL)

?

2. 大致浏览安装教程
http://rubyonrails.org/download
如果想了解更多,还可以参考官方的wiki(有相应的中文翻译)
http://wiki.rubyonrails.org/

?

3. 安装Ruby 1.8.7/1.9.2。
因为Rails在发展中,版本时常会升级。
到现在为止,我看到的提示是:
We recommend Ruby 1.8.7 or Ruby 1.9.2 for use with Rails. Ruby 1.8.6 and earlier are not supported, neither is version 1.9.1。
它会推荐使用某个版本的Ruby,原因是作为语言的Ruby永远比Ruby on Rails使用的Ruby要新,Ruby on Rails会由于Ruby的版本问题出现bug,所以并非越新的Ruby越好(对于学习Ruby语言当然越新越好,但作为企业级开发来说可能不太安全)如果你对任何东西都心存怀疑,可以使用较旧的绿色版Ruby on Rails,例如InstantRails,安装起来会更加简单(我这里就不讨论绿色版的Ruby on Rails)。
怎么获得Ruby呢,放心,Windows版的Ruby是不需要自己编译的(当然确实有这种需要可以尝试,不过Ruby在Windows下编译并非轻易,我就不讨论了),名字叫RubyInstaller:
http://www.ruby-lang.org/en/downloads/
http://rubyinstaller.org/
如果对win32绿色版Ruby感兴趣,还可参考官网提到的一个网站:
Ruby-mswin32
http://www.garbagecollect.jp/ruby/mswin32/en/

?

(

20101024补充:

http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
)

?

?

可以放心的是,windows下的Ruby跟其它平台的Ruby区别并不大(个人觉得OTL)。
再次说明一点,必须注意版本要与Rails兼容,所以我下载了这个版本的Ruby:
Ruby 1.9.2-p0 RubyInstaller
(md5: 21bf42f7ec4b8a831c947d656509cddb)
Stable version (recommended)
安装时最好加入PATH和关联.rb,.rbw。
不加PATH也行,因为这个版本的Ruby带了一个命令提示符的快捷方式Start Command Prompt with Ruby。
可以尝试运行Interactive Ruby(简称irb)
irb(main):001:0> print 'Hello world'
Hello world=> nil
也可以尝试运行Start Command Prompt with Ruby
C:\Documents and Settings\Administrator>ruby -e "print 'Hello world'"
Hello world
(注:Ruby 1.9.2好像无法本地安装旧版本的gem,但可以在线安装,如果需要对比,可以同时装1.8和1.9两个版本的Ruby)

?

?

4. 检查Ruby是否自带RubyGems
RubyGems是标准Ruby包管理器。
http://rubyforge.org/frs/?group_id=126
不过有一点,安装Ruby的时候可能已经有了RubyGems,所以最好在
Start Command Prompt with Ruby下输入gem以查看gem的安装情况:
ruby 1.9.2p0 (2010-08-18) [i386-mingw32]
C:\Documents and Settings\Administrator>gem
RubyGems is a sophisticated package manager for Ruby.? This is a
basic help message containing pointers to more information.
看来RubyGems已经自带了,不需要另行下载。
然后查看已经安装了的本地包
C:\Documents and Settings\Administrator>gem list
*** LOCAL GEMS ***
minitest (1.6.0)
rake (0.8.7)
rdoc (2.5.8)
可以看到Ruby默认是不会帮你安装Rails的(当然啦,因为Rails并不是标准Ruby的一部分,所以Ruby就帮你省了,不过我想可能是因为Ruby的设计者们不愿意受过多的东西拖累)
关于gem的使用手册可以参考这里:
http://docs.rubygems.org/shelf/index

?

?

5. 在线或本地安装Rails。
前面提到的gem命令主要目的就是在线安装Rails。
只要有了gem和可以上网,一切都毫不费力O(∩_∩)O
gem install rails
由于一切都在后台进行没有回显,所以如果你实在不耐烦,可以Ctrl+C结束,然后输入gem list查询已经安装了什么依赖包。(虽然比较麻烦,不过这么做没什么不好)因为逐个下载包时间会比较长,这段时间唯一可以做的是等命令行结束或者是去干别的OTL。
C:\Documents and Settings\Administrator>gem install rails
Successfully installed activerecord-3.0.1
Successfully installed activeresource-3.0.1
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.8
Successfully installed mail-2.2.7
Successfully installed actionmailer-3.0.1
Successfully installed thor-0.14.3
Successfully installed railties-3.0.1
Successfully installed bundler-1.0.3
Successfully installed rails-3.0.1
11 gems installed
Installing ri documentation for activerecord-3.0.1...
Installing ri documentation for activeresource-3.0.1...
Installing ri documentation for mime-types-1.16...
Installing ri documentation for polyglot-0.3.1...
Installing ri documentation for treetop-1.4.8...
Installing ri documentation for mail-2.2.7...
Installing ri documentation for actionmailer-3.0.1...
Installing ri documentation for thor-0.14.3...
Installing ri documentation for railties-3.0.1...
Installing ri documentation for bundler-1.0.3...
Installing ri documentation for rails-3.0.1...
Installing RDoc documentation for activerecord-3.0.1...
Installing RDoc documentation for activeresource-3.0.1...
Installing RDoc documentation for mime-types-1.16...
Installing RDoc documentation for polyglot-0.3.1...
Installing RDoc documentation for treetop-1.4.8...
Installing RDoc documentation for mail-2.2.7...
Installing RDoc documentation for actionmailer-3.0.1...
Installing RDoc documentation for thor-0.14.3...
Installing RDoc documentation for railties-3.0.1...
Installing RDoc documentation for bundler-1.0.3...
Installing RDoc documentation for rails-3.0.1...

?

另一种安装方法是把gem文件下载到本地,然后用-l参数安装(不过,这里只是rails-2.2.3,与在线安装的不同)。
例如
> cd D:\ugame\src\rails\rails-install\gem
> d:
> gem install rails -l
下面是需要用到的gem:
Rake 0.8.7
(Rake是Ruby的类make工具。用于数据库迁移,路由校验等)
http://rubyforge.org/frs/?group_id=50
Rails 2.2.3
(Rails是MVC模式的网络应用框架,包含模板引擎、控制器框架和对象关系映射包。开发网络应用的所有东西都可运行于CGI,FastCGI和mod_ruby)
http://rubyforge.org/frs/?group_id=307
Action Mailer 2.2.3
(简化了邮件服务类的创造,使用动作视图(从行动包)来呈现主体模板。管理进出的电子邮件)
http://rubyforge.org/frs/?group_id=361
Action Pack 2.2.3
(简化网络请求路由、处理和响应为half-way前端,half-way页面控制器。实现特别强调简化单元/集成测试而不需要使用浏览器。通过Action Controller和Action View进行HTTP请求的处理和视图)
http://rubyforge.org/frs/?group_id=249
ActiveRecord 2.2.3
(为ORM实现ActiveRecord模式(Fowler, PoEAA)。它把数据库表和类关联为业务对象,如客户或订阅,可以被查找,保存和销毁而不需要手工写SQL)
http://rubyforge.org/frs/?group_id=182
Active Resource 2.2.3
(为ActiveRecord模型类自动生成路由,控制器动作和JavaScript代理对象)
http://rubyforge.org/frs/?group_id=3507
Active Support 2.2.3
(是Rails所需要并普遍使用的实用工具类和扩展的标准库。专门为Rails开发的类)
http://rubyforge.org/frs/?group_id=570
sqlite3-ruby 1.3.1
(SQLite数据库引擎的Ruby界面)
http://rubyforge.org/frs/?group_id=254
注意,全部下载gem格式,并且为2.2.3版本。
测试时,用Ruby 1.9.2本地安装会出错,但用Ruby 1.8.7本地安装则不会:
Ruby 1.8.7-p302 RubyInstaller
(md5: 9391a3dddbbda3ee8aa3bb368fdc5279)
Stable version (recommended)

?

20101022补注:gem下载除了

http://rubyforge.org/

还有

http://rubygems.org/

前者只可以下载Rails 3.0以前的gem,而后者的gem是最新。

?

另外,官网说可以在gem install后接版本号,例如

gem install rails --version 3.0.0.

但尚未验证。

?

??

6. 创建并运行第一个rails。
1)
对于Ruby 1.8.7/Rails 2.2.3,
> rails helloworld
> cd helloworld
> ruby script/server
打开浏览器http://localhost:3000/
点击About your application's environment会报错:
MissingSourceFile in Rails/infoController#properties
no such file to load -- sqlite3
原因是没有安装sqlite3-ruby这个gem或者没有把sqlite3.dll复制到bin目录中。
首先下载并安装sqlitedll-3_7_3.zip(注意是dll)
http://www.sqlite.org/download.html
把dll拷贝到C:\Ruby187\bin
然后本地安装sqlite3-ruby(下载sqlite3-ruby-1.3.1-x86-mingw32.gem,放在某个目录中)
> cd D:\rails-install\gem
> d:
> gem install sqlite3-ruby -l
然后用gem list确定那你已经安装了这个gem。
现在返回到刚才创建的helloworld目录中。
> cd C:\Documents and Settings\Administrator\helloworld
> c:
> ruby script/server
打开浏览器http://localhost:3000/检查页面是否正常

?

补充一下,理论上可以关闭数据库功能。
方法是用编辑器打开config/environment.rb
? # Skip frameworks you're not going to use. To use Rails without a database
? # you must remove the Active Record framework.
? # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
去掉config.frameworks前的注释,以跳过Active Record安装(你大概一眼就认出,其实这就是个ruby文件)
不过这么做可能会影响你后面使用数据库,也无法消除no such file to load -- sqlite3的错误
最好的方法还是上面所说的那样装sqlite3-ruby和sqlite3.dll消除这个问题。

?

?

------------------
2)
对于Ruby 1.9.2/Rails 3.0.1,注意rails的用法和1.8的不同,创建需要加new
> rails new helloworld
切换到helloworld目录
> cd helloworld
注意,和1.8.7不同,默认需要安装SQLite3的dll,后面会提到。
运行服务器直接用rails,不需要用ruby了。
> rails server
Could not find gem 'sqlite3-ruby (>= 0, runtime)' in any of the gem sources.
Try running `bundle install`.
此时运行bundle install
> bundle install
安装sqlite3-ruby后
> rails server
提示找不到sqlite3.dll
下载并安装sqlitedll-3_7_3.zip(注意是dll)
http://www.sqlite.org/download.html
把sqlite3.dll解压到C:\Ruby192\bin下
> rails server
打开浏览器http://localhost:3000/检查页面是否正常

?

?

7. (待续)

?

?

参考资料:

1. RoR主页
http://rubyonrails.org/


2. 《Rails学习手册》(Learning Rails)
Learning Rails
Rails from the Outside In
By Simon St. Laurent, Edd Dumbill
http://oreilly.com/catalog/9780596518783

?

?

?

?

?

更新日志:

2010年10月24日 修改关于mswin32的ruby二进制发布版下载链接

2010年10月22日? 关于gem下载的补充

?

?

?

?

?

  • 相关文章
发表评论
用户名: 匿名