尽管有新的卸载/安装程序,但是在错误的版本上耙

时间:2012-06-21 09:18:07

标签: ruby rake version redmine

我正在尝试在服务器上安装RedMine。

as explained here程序中我应该运行

rake generate_secret_token

但是,我收到了这个错误:

(in /home/var/redmine)
rake aborted!
uninitialized constant Rake::DSL
/home/var/redmine/Rakefile:7
(See full trace by running task with --trace)

经过一些研究后我发现rake 0.8.7应该有这个问题(至少,我是如何理解它)而且我应该使用rake 0.9.2.2

我尝试添加

gem 'rake', '0.9.2.2'

到我的Gemfile。

我检查了

rake --version

得到

rake, version 0.8.7

我跑了

gem uninstall rake

根据输出结果成功了。

然后我跑了

gem install rake -v=0.9.2.2

输出

Successfully installed rake-0.9.2.2
1 gem installed
Installing ri documentation for rake-0.9.2.2...
Installing RDoc documentation for rake-0.9.2.2...

然而,当然后调用

rake --version

我还是

rake, version 0.8.7

我还尝试添加

gem 'rake', '0.8.7'

到我的Gemfile for redmine。但是,我在运行rake时得到了这个响应

You have requested:
rake = 0.8.7

The bundle currently has rake locked at 0.9.2.2.
Try running `bundle update rake`

我在这里做错了什么?

3 个答案:

答案 0 :(得分:2)

我能够通过以下步骤解决这个奇怪的问题:

gem uninstall rake

然后

bundle update rake

这给了我一个响应,即rake已经是最新的,但我仍然在这里列出 - 以防万一。

然后

gem install rake -v=0.8.7

此外,在我的Gemfile中,我有了这个配置

source 'http://rubygems.org'
gem 'rails', '3.2.6'
gem 'rake', '0.8.7'

(按此顺序)

完成所有这些后,我才能够

rake generate_secret_token

成功。

答案 1 :(得分:1)

当使用同一gem的多个版本时,您可以使用_version_参数指定要使用的版本,例如。 rake _0.9.2.2_ --version (见gem help install

要使用Gemfile的版本,您可以在命令前添加bundle exec,例如。 bundle exec rake --version(请参阅http://gembundler.com/中的“使用入门”)

答案 2 :(得分:1)

基本上,不同的rake不兼容版本会产生问题。这解决了我的问题:

/var/lib/gems/1.8/bin/rake generate_secret_token