尽管安装了 ruby​​ gem,但未找到

标签 ruby rubygems

我在 SO 上发现了一些类似的问题,但似乎没有一个符合我的情况(抱歉,如果我忽略了)。这是我的问题:我将 oauth-plugin gem 安装到 ruby​​ gems 目录,但是尝试在 rails 应用程序中使用它告诉我找不到它。以下是相关命令的输出:

安装

% s gem install oauth-plugin
Successfully installed oauth-plugin-0.3.14
1 gem installed
Installing ri documentation for oauth-plugin-0.3.14...
Installing RDoc documentation for oauth-plugin-0.3.14...

gem which oauth-plugin 输出:

% gem which oauth-plugin
/usr/lib/ruby/gems/1.8/gems/oauth-plugin-0.3.14/lib/oauth-plugin.rb

gem env 输出:

% gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.6
  - RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin10.2.0]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-10
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /Users/eimantas/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => true
     - :bulk_threshold => 1000
     - :gem => ["--no-ri", "--no-rdoc"]
     - :sources => ["http://gems.ruby.lt/", "http://rubygems.org/"]
  - REMOTE SOURCES:
     - http://gems.ruby.lt/
     - http://rubygems.org/

执行 ls -l/usr/lib/ruby 显示:

% ls -l /usr/lib/ruby     
lrwxr-xr-x  1 root  wheel  76 Aug 14  2009 /usr/lib/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/lib/ruby

并且所讨论的 gem 位于预定位置。

这是当我尝试运行 $ rake spec

时 rails 给我的错误
Missing these required gems:
  oauth-plugin   = 0.3.14

You're running:
  ruby 1.8.7.173 at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  rubygems 1.3.6 at /Users/eimantas/.gem/ruby/1.8, /Library/Ruby/Gems/1.8, /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

Run `rake gems:install` to install the missing gems.

这不是没有被 ruby​​gems 找到的单个 gem(尽管它位于它应该位于的位置)。非常感谢对解决方案的任何指导。

最佳答案

您安装了两个不同版本的 Ruby。首先是:

/usr/bin/ ruby

第二个在:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

问题是一个用于命令行(即安装 gems),另一个用于网络服务器运行 Rails。

由于您的 Web 服务器使用的是第二个 Ruby 版本,因此一种解决方案是使用该 Ruby 版本安装 gem。或者,您可以告诉您的网络服务器使用不同的 Ruby 版本——这取决于您使用的服务器可以通过不同的方式实现。

关于尽管安装了 ruby​​ gem,但未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797020/

相关文章:

ruby-on-rails - Rails,在 Controller 中使用文件的内容

ruby-on-rails - 使用 FFaker::Internet.user_name 时指定最小长度

ruby-on-rails - rails : build array with the value from a certain model attribute

ruby-on-rails - 为什么 Rubygems 无法安装 Rails?

ruby - ( ruby )警告 : duplicated key at line 46 ignored: "index0"

ruby-on-rails - 将 Cardmagic gem 集成到 Rails 应用程序中

ruby-on-rails-3 - 警告:已初始化的常量PDF

ruby-on-rails - Rails:使用 ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR 测试失败

ruby-on-rails - 如何调试/修复随机发生的 Redis::TimeoutError?

ruby-on-rails - 无法在 Windows 上安装 ruby​​-debug gem