我在 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
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.
这不是没有被 rubygems 找到的单个 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/