`
llyzq
  • 浏览: 576661 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Rails的痛苦升级路

阅读更多

最近在选择开源项目管理工具,最后看上了redmine

一开始用Bitnami,可是装好之后总是不能访问redmine

无奈之后选择InstantRails-2.0作为安装环境

可是按照网上的帖子装的过程中总是报错

后来才知道是因为我装的redmine 1.0.0要求的版本要比InstantRails-2.0高,而InstantRails-2.0从2007年开始就没更新过了。

昨晚我弄了2点半,中间几次想放弃,但拗不过自己的牛脾气,最后终于升级成功,并且成功访问了redmine。

过程是痛苦的,结果是甜蜜的。

虽然对ror并不是很了解,但想信我的安装经历对大家多少会有些帮忙。

 

具体过程如下:

1、InstantRails-2.0安装后,在配置环境变量path中配置ruby/bin目录(如果系统中有多个RUBY,执行命令行的时候系统认的就是path中的)

2、进入DOS命令行,执行gem update --system,结果

Updating RubyGems...
ERROR:  While executing gem ... (Gem::RemoteSourceException)
HTTP Response 302 fetching http://rubygems.org/yaml

     这是因为gem的配置过低,无法进行远程更新,执行gem -v 发现是1.0.1

3、从下面这个地址下载 rubygems-update-1.3.7.gem,http://rubyforge.org/frs/download.php/70695/rubygems-update-1.3.7.gem

    然后DOS命令进行该文件所在的目录,执行gem install --local rubygems-update-1.3.7.gem,出现信息

Successfully installed rubygems-update-1.3.7
1 gem installed
Installing ri documentation for rubygems-update-1.3.7...
Installing RDoc documentation for rubygems-update-1.3.7...
Could not find main page README
Could not find main page README
Could not find main page README
Could not find main page README

  执行gem -v查看,发现并没有更新成功,Could not find main page README是什么意思我没弄明白,但是我从http://production.s3.rubygems.org/yaml上发现这么一句

      If you have an older version of RubyGems installed, then you can still
      do it in two steps:
     
        $ gem install rubygems-update  # again, might need to be admin/root
        $ update_rubygems              # ... here too
 我照着再执行update_rubygems,接着出现的信息很多,就不帖出来,再执行gem -v,发现更新成功,已经是1.3.7了

 这一步是一切成功的源泉!!!!!!

4、接着再执行gem update --system,提示

 Updating RubyGems
Nothing to update

  这是为什么我不明白,请高手指点一下

5、再执行gem update rails --include-dependencies,提示信息

Updating installed gems
Updating rails
ERROR:  Error installing rails:
        actionpack requires rack (~> 1.0.0, runtime)
Gems updated: activesupport, activerecord
Installing ri documentation for activesupport-2.3.3...
Installing ri documentation for activerecord-2.3.3...
Installing RDoc documentation for activesupport-2.3.3...
Installing RDoc documentation for activerecord-2.3.3...

执行rails -v,发现还是2.0.2没有更新成功,根据actionpack requires rack (~> 1.0.0, runtime),应该是actionpack 需要1.0.0版本的rack

6、执行gem install rack -v=1.0.0

Successfully installed rack-1.0.0
1 gem installed
Installing ri documentation for rack-1.0.0...
Installing RDoc documentation for rack-1.0.0...

更新成功

 7、再次执行 gem update rails --include-dependencies

出现信息

Updating installed gems
Updating rails
Successfully installed rake-0.8.7
Successfully installed activesupport-2.3.8
Successfully installed activerecord-2.3.8
Successfully installed rack-1.1.0
Successfully installed actionpack-2.3.8
Successfully installed actionmailer-2.3.8
Successfully installed activeresource-2.3.8
Successfully installed rails-2.3.8
Gems updated: rake, activesupport, activerecord, rack, actionpack, actionmailer, activeresource, rails
Installing ri documentation for rake-0.8.7...
Installing ri documentation for activesupport-2.3.8...
Installing ri documentation for activerecord-2.3.8...
Installing ri documentation for rack-1.1.0...
Installing ri documentation for actionpack-2.3.8...
Installing ri documentation for actionmailer-2.3.8...
Installing ri documentation for activeresource-2.3.8...
Installing ri documentation for rails-2.3.8...
Installing RDoc documentation for rake-0.8.7...
Installing RDoc documentation for activesupport-2.3.8...
Installing RDoc documentation for activerecord-2.3.8...
Installing RDoc documentation for rack-1.1.0...
Installing RDoc documentation for actionpack-2.3.8...
Installing RDoc documentation for actionmailer-2.3.8...
Installing RDoc documentation for activeresource-2.3.8...
Installing RDoc documentation for rails-2.3.8...

执行rails -v,发现已更新成功

 

总结:rails更新有两种方式:1、联机更新;2本地更新

联机更新过程中如果出现HTTP Response 302 fetching http://rubygems.org/yaml无法更新,有两种情况

一是gem的版本过低,二是与服务器的连接不通

此时可以试着加入其他服务器地址

 gem source -l  查看列表

 gem source -a http://rubygems.org 加入新的服务器地址

 或者直接gem install rubygems-update --source http://rubygems.org

本地更新需要下载相应的gem包,版本需与要更新的rails版本对应,同时安装顺序有要求,因此gem包之间有依赖关系

顺序从上面的显示信息中可以看出来

Successfully installed rake-0.8.7
Successfully installed activesupport-2.3.8
Successfully installed activerecord-2.3.8
Successfully installed rack-1.1.0
Successfully installed actionpack-2.3.8
Successfully installed actionmailer-2.3.8
Successfully installed activeresource-2.3.8
Successfully installed rails-2.3.8

至于gem包的下载地址都在http://rubyforge.org/,但是有些项目的并不好找到,可以在google中直接搜索,就能找到在http://rubyforge.org/中的地址。

 

分享到:
评论
11 楼 weilingfeng98 2010-09-20  
安装确实让人头疼
10 楼 wwccss 2010-08-22  
如果楼主是在寻找项目管理工具的话,可以尝试另外一个项目管理软件,zentao,也是开源的,使用php+mysql开发,环境部署起来要方便多了。功能方面与redmine相比也毫不逊色。http://www.zentaoms.com
9 楼 zfree 2010-08-08  
rails升级就是找抽啊
8 楼 zhaopf 2010-08-06  
Ruby的升级确实让人很痛苦,关键是很多外围的扩展都没注明可用版本,虽然gem install xxx 能进行一些 帮助,但是还有很多gem出来的确实老版本,根本用不到现在的版本中去。
真的希望有人能够打好包放哪儿,让我们下载,但是那是不是违背的开源精神,“零散,无序,没有任何包装的DIY”
以我自己为例,安装gem install MySQL,用的是Ruby187,186,主要是mongrel无法在191下运行,所以只好选186,187,结果在Rails下可以用但你在irb中,require 'mysql‘始终是说mysql无法找到,这很折腾人,当然在191下面没有什么问题。
总之要想在短时间内从事开源化生产,存在很多问题,光安装环境都要搞半天。
7 楼 lyslim 2010-08-02  



现在还用instant rails就真是 非主流 了...

推荐lz

1。装ruby

2。装rails gem

3。用aptana radrails...


以前自己也折腾过一阵子,但是现在rails及周边的工具都相对成熟了,装起来应该不至于是痛苦的一件事吖..


6 楼 llyzq 2010-08-02  
真无名 写道
初始选择就错了
都什么年代了 还InstantRails2.0


当时并不清楚

我也是根据网上一帖子走的
5 楼 sevk 2010-08-02  
先安装 ruby1.9 , 再执行 gem update --system ; gem update ,
然后安装 rails 的命令是 gem install rails . 搞定.
4 楼 真无名 2010-08-02  
初始选择就错了
都什么年代了 还InstantRails2.0
3 楼 llyzq 2010-07-31  
update_rubygems
也是从网络更新么?
2 楼 sevk 2010-07-31  
gem update --system
效果 和 update_rubygems 一样。
1 楼 齐薄云天 2010-07-30  
关于rubygems版本的更新:
如果你连着网络,可以直接执行 gem update --system
但如果你本地的gem 版本过低,就没有这个自动更新的功能,需要你手动下载rubygems更新包,并本地更新。如你文中说的那样更新。

$ gem install rubygems-update  # again, might need to be admin/root
$ update_rubygems              # ... here too
执行完这些后就是通过本地安装完成了rubygems的升级,因此不需要再执行 gem update --system 了。

相关推荐

Global site tag (gtag.js) - Google Analytics