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