我在SO上发现了一些类似的问题,但似乎没有一个与我的情况相符(对不起,如果我忽略了)。这是我的问题:我在ruby gems目录中安装了oauth-plugin gem,但是尝试在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
有问题的宝石位于预定位置。
当我尝试运行$ 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(虽然它位于它应该的位置)。非常感谢对该解决方案的任何指导。
答案 0 :(得分:22)
您安装了两个不同版本的Ruby。首先是:
的/ usr /斌/红宝石
,第二个是:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
问题是在命令行中使用了一个(即安装gems),Web服务器使用另一个来运行Rails。
由于您的Web服务器正在使用第二个Ruby版本,因此一个解决方案是使用该Ruby版本安装gem。或者,您可以告诉您的Web服务器使用不同的Ruby版本 - 取决于您使用的服务器,可以通过不同的方式实现。
答案 1 :(得分:2)
您之前安装过oauth吗?
gem install oauth
似乎是needed
修改强>
在你的
上gem env
你有
RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin10.2.0]
但如果你看错误就说你正在运行
ruby 1.8.7.173
您是否指向不同版本的ruby?
答案 2 :(得分:2)
试试
sudo update-alternatives --config ruby
并选择其他ruby版本。为我工作。
答案 3 :(得分:1)
首先要做的是:config.gem 'oauth-plugin'
文件中有config/environment.rb
行吗?
如果有,请尝试运行script/console
并输入system("gem which oauth-plugin")
你的宝石路径可能会从你的rails应用程序中搞砸了。上面的命令应该告诉你是否实际上是通过rails找到了gem。
如果找不到,请从system("gem env")
尝试script/console
,看看是否有任何事情发生。这应该有助于调试。
答案 4 :(得分:0)
你试过了吗?
require 'rubygems'
答案 5 :(得分:0)
在Windows 7上,使用rubyinstaller,我选择了第二个复选框,使ruby在任何地方都可用,这意味着您不必配置任何已安装的ruby版本的路径。如果您有多个开发环境,它可能会影响其他版本的ruby或其他项目。