web-dev-qa-db-ja.com

rubyインストールされているのに宝石が見つからない

ここで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によって検出されない単一の宝石ではありません(あるべき場所に配置されています)。ソリューションへのガイダンスは大歓迎です。

22
Eimantas

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バージョン-これは、使用しているサーバーに応じて、さまざまな方法で実現できます。

25

ちょうど試して

Sudo update-alternatives --config Ruby 

他のRubyバージョンを選択します。私のために働いた。

3
cartasu

以前に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

ルビーの異なるバージョンを指していますか?

2
tommasop

まず最初に:_config.gem 'oauth-plugin'_ファイルに_config/environment.rb_行がありますか?

その場合は、_script/console_を実行してsystem("gem which oauth-plugin")と入力してみてください

可能性のあるあなたの宝石パスはあなたのRails app。

見つからない場合は、_script/console_からsystem("gem env")を試して、何かが飛び出していないか確認してください。これはデバッグに役立ちます。

1
Lolindrath

Windows 7では、rubyinstallerを使用して、2番目のチェックボックスをオンにしました。これにより、Rubyがどこでも使用できるようになります。つまり、Rubyバージョンへのパスを構成する必要はありません複数の開発環境がある場合、他のバージョンのRubyまたは他のプロジェクトに影響を与える可能性があります。

0
racemic

やってみました:

require 'rubygems'
0
gsiener