Подтвердить что ты не робот

Рубиновый камень не найден, хотя он установлен

Я нашел некоторые подобные проблемы здесь, на SO, но ни один из них не соответствует моему делу (извините, если я упустил из виду). Вот моя проблема: я установил gaut gaut для рубинового 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.

Это не один камень, который не найден рубигемами (хотя он расположен там, где он должен быть). Любые рекомендации в отношении решения очень ценятся.

4b9b3361

Ответ 1

У вас есть две разные версии Ruby. Сначала находится:

/USR/бен/рубин

а второй - в:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

Проблема заключается в том, что один используется в командной строке (например, для установки драгоценных камней), а другой используется веб-сервером для запуска Rails.

Поскольку ваш веб-сервер использует вторую версию Ruby, одним из решений будет установка gem с использованием этой версии Ruby. В качестве альтернативы вы можете указать веб-серверу использовать другую версию Ruby - в зависимости от того, какой сервер вы используете, это может быть достигнуто по-разному.

Ответ 2

Вы ранее устанавливали oauth?

gem install oauth

Кажется, что необходимо

EDIT:

На вашем

gem env

у вас есть

RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin10.2.0]

Но если вы посмотрите на ошибку, в ней говорится, что вы используете

ruby 1.8.7.173

Указываете ли вы на разные версии ruby?

Ответ 3

Просто попробуйте

sudo update-alternatives --config ruby 

и выберите другую рубиновую версию. Работал для меня.

Ответ 4

В первую очередь: у вас есть строка config.gem 'oauth-plugin' в вашем файле config/environment.rb?

Если да, попробуйте запустить script/console и введите system("gem which oauth-plugin")

Возможно, ваш путь из драгоценных камней перепутан из вашего приложения rails. Вышеупомянутая команда должна сказать вам, действительно ли камень найден на рельсах.

Если он не найден, попробуйте system("gem env") из script/console и посмотрите, не выскочит ли на вас что-либо. Это должно помочь в отладке.

Ответ 5

Вы пробовали:

require 'rubygems'

Ответ 6

В Windows 7 с помощью rubyinstaller я выбрал второй флажок, который делает рубин доступным везде, то есть вам не нужно настраивать какие-либо пути к установленной рубиновой версии. Это может повлиять на другие версии ruby ​​или других проектов, если у вас несколько сред с несколькими средами.