我正在尝试在服务器上安装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`
我在这里做错了什么?
答案 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