J'ai trouvé des problèmes similaires ici sur SO, mais aucun ne semble correspondre à mon cas (désolé si j'ai négligé). Voici mon problème: j'ai installé oauth-plugin gem dans Ruby gems dir, mais essayer de l'utiliser dans l'application Rails m'indique qu'il n'est pas trouvé. Voici la sortie des commandes pertinentes:
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
sortie:
% gem which oauth-plugin
/usr/lib/Ruby/gems/1.8/gems/oauth-plugin-0.3.14/lib/oauth-plugin.rb
gem env
sortie:
% 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/
Faire ls -l /usr/lib/Ruby
montre ceci:
% 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
Et la gemme en question est à l'emplacement prévu.
Voici l'erreur que me donne Rails lorsque j'essaie d'exécuter $ 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.
Ce n'est pas un joyau qui ne soit pas trouvé par rubygems (bien qu'il soit situé où il devrait être). Toute orientation vers la solution est très appréciée.
Vous avez installé deux versions différentes de Ruby. Le premier est dans:
/ usr/bin/Ruby
et le second est dans:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby
Le problème est qu’un est utilisé en ligne de commande (c’est-à-dire pour installer des gems) et un autre est utilisé par le serveur Web pour exécuter Rails.
Puisque votre serveur Web utilise la deuxième version de Ruby, une solution serait d’installer gem en utilisant cette version de Ruby. Vous pouvez également demander à votre serveur Web d’utiliser différentes versions de Ruby. En fonction du serveur que vous utilisez, vous pouvez le faire de différentes manières.
Avez-vous déjà installé oauth?
gem install oauth
Il semble que c'est nécessaire
EDIT:
Sur votre
gem env
tu as
Ruby VERSION: 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin10.2.0]
Mais si vous regardez l'erreur, il est écrit:
Ruby 1.8.7.173
Est-ce que vous pointez vers différentes versions de ruby?
Juste essayer
Sudo update-alternatives --config Ruby
et sélectionnez l'autre version de Ruby. Travaillé pour moi.
Tout d’abord: avez-vous une ligne config.gem 'oauth-plugin'
dans votre fichier config/environment.rb
?
Si c'est le cas, essayez d'exécuter script/console
et tapez system("gem which oauth-plugin")
Il est possible que votre chemin d'accès aux pierres précieuses soit perturbé depuis l'intérieur de votre application Rails. La commande ci-dessus devrait vous dire si la gemme est réellement trouvée par Rails.
S'il ne l'a pas trouvé, essayez system("gem env")
à partir du script/console
et voyez si quelque chose vous saute aux yeux. Cela devrait aider au débogage.
Sous Windows 7, à l'aide de rubyinstaller, j'ai sélectionné la deuxième case à cocher qui permet à Ruby d'être disponible partout, ce qui signifie que vous n'avez pas à configurer les chemins d'accès à la version de Ruby que vous avez installée. Cela peut affecter d'autres versions de Ruby ou d'autres projets si vous avez plusieurs environnements de développement.
As-tu essayé:
require 'rubygems'