如何运行特定版本的rake

时间:2012-09-26 04:45:45

标签: ruby-on-rails

背景:

  • 每当我在较旧的项目中运行rake时,我都会收到错误。 (未初始化的常量Rake :: DSL)。
  • 有问题的rails项目是一个以Rails 2.1(我认为)开始的旧项目,从那时起我在笔记本电脑上更新了操作系统几次,并在此过程中进行了更新以使其运行
  • 现在,只要我将RAILS_GEM_VERSION设置为2.3.5,rails应用程序就可以正常工作。我不确定该应用是否完全更新为Rails 2.3.5。
  • 我的旧项目中没有Gemfile。
  • 如果我创建一个全新的rails项目(并取消设置RAILS_GEM_VERSION),则rake运行正常。

我的问题:要进行问题排查,我想尝试更新版本的rake。我想知道如何强制使用一个特定版本,因为看起来我安装了多个版本。

我的环境信息:

$ gem list rake

*** LOCAL GEMS ***

rake (0.9.2.2, 0.9.2, 0.8.7, 0.8.3)


$ rake --version
rake, version 0.8.7

所以看起来它正在拿起0.8.7版本。

在线的所有帮助文件似乎告诉我在Gemfile中指定rake版本,但是这个项目中没有一个。 (也许它早于gemfiles?)

如果我完全取消设置RAILS_GEM_ENVIRONMENT变量,并尝试运行rake,我会得到:

rake aborted!
can't activate rails (= 2.3.5, runtime) for [], already activated rails-3.2.8 for []

旧项目中的环境配置文件都没有设置该变量。

3 个答案:

答案 0 :(得分:7)

This may be of help.您是否尝试过下划线解决方案?

示例:

rake _0.9.2_

答案 1 :(得分:2)

您可以使用此

运行rake特定版本

捆绑exec rake ...

更多细节请参阅此内容 - bundle execrake

答案 2 :(得分:0)

您可以卸载当前版本的 rake ,并使用类似于以下内容的命令安装其他所需版本:

gem uninstall rake 12.3.1
gem install rake 10.5.0

(注意:您可能需要以sudo身份运行权限)

我遇到了一个问题,我在尝试安装rake 10.5.0时收到以下错误:

Could not find a valid gem '0.8.7' (>= 0) in any repository

我通过将以下行添加到 Gemfile

来解决了这个问题
gem 'rake', ' <11.0'

编辑 Gemfile 后,我可以通过更新我的宝石成功降级 rake

bundle update