ここでSOでいくつかの同様の問題を発見しましたが、私のケースに一致するものはないようです(見落として申し訳ありません)。これが私の問題です:Ruby gems dirにoauth-plugin gemをインストールしましたが、Railsアプリでそれを使用しようとすると、見つからないことがわかります。ここにあります。関連コマンドの出力:
Installation
% 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
そして、問題の宝石は意図した場所にあります。
Railsを実行すると$ 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によって検出されない単一の宝石ではありません(あるべき場所に配置されています)。ソリューションへのガイダンスは大歓迎です。
Rubyの2つの異なるバージョンがインストールされています。最初のバージョンは次の場所にあります。
/ usr/bin/Ruby
そして2番目は中にあります:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby
問題は、1つがコマンドラインで(つまり、gemをインストールするために)使用され、もう1つがWebサーバーがRailsを実行するために使用することです。
Webサーバーが2番目のRubyバージョンを使用しているため、1つの解決策は、そのRubyバージョンを使用してgemをインストールすることです。または、別の方法を使用するようにWebサーバーに指示することもできます。 Rubyバージョン-これは、使用しているサーバーに応じて、さまざまな方法で実現できます。
ちょうど試して
Sudo update-alternatives --config Ruby
他の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
ルビーの異なるバージョンを指していますか?
まず最初に:_config.gem 'oauth-plugin'
_ファイルに_config/environment.rb
_行がありますか?
その場合は、_script/console
_を実行してsystem("gem which oauth-plugin")
と入力してみてください
可能性のあるあなたの宝石パスはあなたのRails app。
見つからない場合は、_script/console
_からsystem("gem env")
を試して、何かが飛び出していないか確認してください。これはデバッグに役立ちます。
Windows 7では、rubyinstallerを使用して、2番目のチェックボックスをオンにしました。これにより、Rubyがどこでも使用できるようになります。つまり、Rubyバージョンへのパスを構成する必要はありません複数の開発環境がある場合、他のバージョンのRubyまたは他のプロジェクトに影響を与える可能性があります。
やってみました:
require 'rubygems'