3

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

在此处解释的过程中,我应该运行

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 进行 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`

我在这里做错了什么?

4

3 回答 3

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

成功地。

于 2012-06-21T09:30:03.637 回答
1

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

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

于 2012-06-21T10:17:01.880 回答
1

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

/var/lib/gems/1.8/bin/rake generate_secret_token
于 2012-11-03T18:35:16.690 回答