ruby on rails 安装(win8 64位)

最近工作需要学习一门新语言:ruby。久闻大名,知道她的存在是因为网上流传的一篇文章 《怎样在两个月内教会妹妹与女友编程》
今日终于要用到了,有些小激动呢~~又学了门新语言来~~
电脑系统是win8,在win8下的VMware里装了个Ubuntu 14.04 麒麟,昨天下午先搞明白了win安装。
Win8 64位安装
1. 安装ruby

        在win下安装 rubyinstaller会根据你的电脑系统下载的,比如说本文是2014.11.25下载的,版本为 rubyinstaller-2.1.5-x64.exe。当然由于是日本人开发的所以只有日语和英语的版本,选择后accept协议,进入以下界面:

                Note:
                     1.  一定要把中间的Add Ruby executables to your PATH给选上,将自动将ruby路径
                         添加到环境变量中。然后安装,ok~ 
                      2.  安装路径要注意,第一次安装的时候安到E:\Program Files\bla bla…这样的目录
                         下,在后面安装完rails的时候会出现类似’ ”E:Program不是内部或外部命令这样的错
                         误 ,后来发现可能是目录中文件夹有空格识别不了。最后直接安装在根目录下就好
                         了~         

最后输入在命令行下输入ruby –v测试一下:

             clipboard1

      hoho~~安装成功~~so easy~~


2. 安装rubygems     在win下需下载zip版 Rubygems,解压后 执行目录下的setup.rb,例如2014-11-25下载的版本是rubygems-2.4.4.zip解压后:clipboard2

     在命令行执行 ruby setup.rb命令:

     安装完成后用 gem -v测试一下:
      oh~yeah~
           c0184b30jw1elugbupmcog209w05ke83
 
3.  安装rails
 
     远程安装的话,如果网络不够好,是需要很长时间的,所以我们就手动来好了~ruby所需gem在rubygems.org网站下搜索下载即可(这里所有软件都是使用的现有最新版本)。
    首先需要下载rails所需依赖, 其实在这里就可以看到安装rails所需要的依赖:
clipboard5
   
     但是通过安装时间推算出其中有几个依赖在安装过程中包含了其他依赖,比如安装了activerecord时就已经安装了view和model:
     所以最后依赖的安装还是按照之前版本的rails安装,要按下面顺序来~~
          a) 下载以下 activesupportactiverecord  actionpack actionmailer rake rails
             (右下角有个download,自动下载当前最新稳定版本,2011-11-25是
              activesupport-4.1.8.gem)
              下载后把所有gem放到同一个文件夹下(例如c:\ror)
          b)使用gem install命令按顺序安装:     
                  gem install  activesupport-4.1.8.gem
                  gem install  activerecord-4.1.8.gem
                  gem install  actionpack-4.1.8.gem
                  gem install  actionmailer-4.1.8.gem
                  gem install  rake-10.3.2.gem(会提示覆盖ruby的rake,上述ruby版本的rake版本比这个低)
                  gem install  rails-4.1.8.gem

             c)测试一下: rails -v

               clipboard7            

                Note:

                             发现这句话没有:DL is deprecated, please use Fiddle 。这个是一个Warning信
                            息,不用太在意,但如果实在嫌弃它的话可以根据下面这个文章将其去掉,方法:
                            去掉DL is deprecated, please use Fiddle错误信息。                         
4.  创建并运行web应用
           a) 创建使用rails new ApplicationName来创建新的web应用,例如进入应用保存目录输入命
              令 rails new Blog 会显示create一些文件, 并会运行 bundle install 命令检查Gemfile中
              的依赖是否可行。
              那么在保存目录就会出现名为Blog文件夹,并包含了自动生成的一些文件:
          Note:
                       这一步因为执行了bundle有可能出现这样的问题:Gem::InstallerError:The ‘json’
                       native gem requires installed build tools……      
                      解决办法参照:Gem::InstallerError:The ‘json’ native gem requires installed
           b) 启动服务器:
             下面让我们来启动一下ruby on rails自带的服务器webrick,在这个版本中,启动命令
             为:rails s(or server) (在应用目录下执行,例如….\Blog\):
clipboard10
            然后在浏览器输入http://localhost:3000测试一下吧~~
clipboard11
           Bingo~~成功了~~
            Note:
                   如果出现了:C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/tzinfo-1.2.2/lib/tzinfo
                  /data_source.rb:182:in `rescue in create_default_data_source’: No source of
                  timezone data could be found. (TZInfo::DataSourceNotFound)的错误,请参
                  照:data_source.rb:182: TZInfo::DataSourceNotFound
       c) 运行应用:
              rails是一个由ruby语言写的框架,可以参照 rails指南来了解。

              首先在新生成的应用中使用generate命令 rails g(generate) controller welcome index
              建一个名为welcome的控制器,如下:

 

clipboard12
           可以看到在app/controllers和app/views下生成相应的控制器和视图。编辑视图
           index.html.erb,随便写点东西进去如…     

           clipboard13

           然后重头戏来了~~设置应用的入口即首页:      
           打开Blog/config/ routes.rb文件:

        clipboard14

           其中get ‘welcome/index’是在执行上述 rails generate controller welcome index命令时生
           成,该语句告诉rails在访问http://localhost:3000/welcome/index时执行welcome控制器
           中的index动作。在上图可以看到有一行root开头的root ‘welcome#index’去掉前面的注
           释,该语句告诉rails访问根路径时交给控制器welcome中的index动作处理,此时输入
           http://localhost:3000时便会显示index中的内容:

          妈妈再也不用担心的ruby on rails环境了~~好开心~

           c0184b30jw1emgfi0bo7yj20zk0k0n04

data_source.rb:182: TZInfo::DataSourceNotFound

启动服务器webrick时出现错误:

C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/tzinfo-1.2.2/lib/tzinfo/data_source.rb:182:in `rescue in create_default_data_source’: No source of timezone data could be found. (TZInfo::DataSourceNotFound)

clipboard26

首先TZInfo::DataSourceNotFound错误是由于Rails的ActiveSupport组件的一个依赖TZInfo引起的。说明TZInfo在你的系统中查找时区来源失败。在许多基于基于Unix的系统中,TZInfo可以使用系统中的zoneinfo文件夹作为数据来源。然而,Windows并没有这样的文件,所以需要安装tzinfo-data gem,其内容与zoneinfo里的内容一样,打包成一个Ruby的模块。
在应用创建之初rails会在目录下默认生成一个Gemfile,其声明了Bundler会用到的 rubygems),而出现这个错误的原因是应用中的Gemfile没有安装tzinfo-data或者使用了64位的ruby:打开Gemfile查看是否包含:gem ‘tzinfo-data’, platforms: [:mingw, :mswin]一行,如果未包含说明没有安装tzinfo-data gem,如果有这一行仍然出现错误,说明使用的是64位的ruby。

解决办法(from stackoverflow)

1. 在应用目录下(例如…\Blog\)运行以下命令:

gem isntall tzinfo-data

2. 修改Gemfile文件,在gem ‘tzinfo-data’一行加入:x64_mingw(只有64位ruby执行这一步

    gem ‘tzinfo-data’, platforms: [:x64_mingw, :mingw, :mswin]

3. 再次运行bundle命令:

    bundle update 

重新启动一下服务器吧~~

clipboard27

问题解决了~~开心呀~~

c0184b30jw1emm3drya97g205x03ju0x

Gem::InstallerError:The ‘json’ native gem requires installed build tools

在搭建好ruby on rails的环境之后,在新建项目中运行bundle命令遇到以下错误:

clipboard9

解决办法:安装DevKit

RubyInstaller官网下载页面选择适合自己系统的DevKit下载(这里我下载的是最后一个):

clipboard19

下载完成后,双击DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

clipboard21

设置解压的文件夹(例如上图C:\DevKit),解压后查看一下,文件夹下的内容如下:

clipboard22

命令行中进入该目录,输入命令进行初始化:ruby dk.rb init,初始化后提示:

clipboard23

然后输入ruby dk.rb install进行安装:

clipboard24

oh~my ladygaga~~ so fast~~
再运行bundle命令时不再出现上述错误:
clipboard25
高兴呀,转个圈圈~~
c0184b30jw1emm3dq33r2g205x03jnpd

DL is deprecated, please use Fiddle

问题:
 搭建完完ruby on rails环境之后发现每次运行命令总会有这样一个Warning:DL is deprecated, please use Fiddle,例如:
clipboard7
clipboard17
  对运行什么的没有影响,只是Dl过时了,可是Ruby大大不管这个问题,可是看着就烦呐~~
c0184b30jw1elwrtvjkh4g209w05ke83
 找到安装目录C:\Ruby21-x64\lib\ruby\2.1.0下的dl.rb将里面的warn一行注释掉即可
         clipboard18
终于我们的世界又清净了许多:
        clipboard20

周末

Good afternoon

都忘记是哪一个周末了,只记得天气很好,阳光很充足,和大学姐去楼下晒被子,当然,得领着土狗。就像一对老夫老妻那样,不再去参与城市的喧嚣,满足于被子被紫外线晒过后的芬芳,听我的高中生物老师说,那是虫子尸体被烤焦的味道,我觉得说不定还真是,孙华权孙总,你有一天google自己名字的时候,是不是会收到我的博客,然后就会对着同学咆哮,顺便仰着你的大鼻孔。

土狗越来越喜欢这样陪着我们——当没有有意思的东西出现之前-.=

我好像是伸了个懒腰,终于看完了手头的书,捡起脚边的相机,给大学姐和土匪粑粑拍一个美照吧。

“咔擦”

——下午好,大学姐,土匪。

满城月季花开

yueji-75

上班的路途,如果习惯了,一个小时并不算远。不管是坐着站着摇晃着,不管车里诡异的空气,如果清晨起床有个好的心情,路上遇见美的风景,一个小时有点短。

北京,月季花开的季节悄然而至,不经意一撇,它们已经在不知不觉中扶起姌姌笑意。绵长细冷的冰雨润化了土壤,打湿了土地公公的心,他老人家揪了几根胡子,嘴一吹手一扬,无数个小地精灵们冲出地面,欢舞在你我看不到的空气中,在它们掠过的地方,一簇簇月季花儿伸着懒腰苏醒过来,满满笑意,在多么舒服的清晨醒来呀~

虽然在车里,被这大铁皮家伙紧紧的包裹着,但是由于对月季花香的记忆一直是如此清晰,随感觉到被浓烈的芬芳捆绑起来,周围的空气也变了味道,注意力被吸引到了自己的呼吸中。味道是可以想象的,是可以看得到的,一个个小小的分子踉踉跄跄地随风而来,调到指肚上,蹦到鼻尖上,挠着痒痒,打着哈欠…情愫上心头,不想下车,如果能一直坐下去,多好。

到达目的地,恋恋不舍地下了车,抬头望向天空,整个燕园像是一座空中楼阁,从来没有发现它如今天这般敞亮过。天是东边白西边蓝,过了一阵,一朵朵厚厚的云积压在头顶,阳光在云的间隙中穿梭,昏暗中带点亮堂,亮的恰到好处。最喜欢直对东南门的那三个大槐树,叶子翠绿干净,风儿吹过,枝叶便像静女细软的头发随风轻轻的摇曳。还有农院食堂南门几棵古老的槐树枫树,走近,就像是走进了一幅画,走远,就像是走出了这幅画。

这一天心情出其的好,身体出其的舒适。多希望再来一场绵延冷冽的雨,也许会遇到别样的故事。

       静女其姝,俟我于城隅。爱而不见,搔首踟蹰。