【问题标题】:/var/lib/gems/1.8/bin/rake:17: undefined method `require_gem' for main:Object (NoMethodError)/var/lib/gems/1.8/bin/rake:17:main:Object 的未定义方法“require_gem”(NoMethodError)
【发布时间】:2011-03-16 15:04:50
【问题描述】:

我在让 Rake 在我的机器上工作时遇到问题。这只发生在从 Rubygems 安装的 Rake 版本(不是 Debian 安装的版本)中。见上图:

charlotte:~# which rake
/var/lib/gems/1.8/bin//rake
charlotte:~# rake
/var/lib/gems/1.8/bin/rake:17: undefined method `require_gem' for main:Object (NoMethodError)
charlotte:~# rake -v
/var/lib/gems/1.8/bin/rake:17: undefined method `require_gem' for main:Object (NoMethodError)
charlotte:~# gem -v
1.6.2
charlotte:~# ruby --version
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
charlotte:~# gem list | grep rake
rake (0.8.7)
charlotte:~# /usr/bin/rake
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2377:in `raw_load_rakefile'
(See full trace by running task with --trace)
charlotte:~# 

【问题讨论】:

    标签: ruby rubygems rake


    【解决方案1】:

    我认为您那里没有最新版本的 rake。第 17 行的 Rake 曾经有 require_gem,并且在过去几年的所有版本中都被替换为 gem。找出 $GEM_HOME 指向的位置,并卸载您的 Rake 发行版。如果您的 GEM_HOME 有所不同(它可能是空的也可以),请从您的 PATH 中删除损坏的 rake 的路径并删除那里的那些宝石。

    还可以尝试在您的 shell 中运行 gem environment。总而言之,您在该路径中拥有的 rake 版本不是 0.8.7,而是较旧,而且我认为 ruby​​gems 不会将您的宝石放在那里。

    【讨论】:

    • 你是对的。这实际上是一个 $PATH 问题。我在 /etc/profile 上有这个:PATH=/var/lib/gems/1.8/bin/:$PATH 我猜想将 bin 目录添加到 $PATH 是一个疯狂的老黑客。
    猜你喜欢
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    相关资源
    最近更新 更多