Question

Ok, je viens de passer 4 heures à essayer de comprendre celui-ci sans succès.J'ai essayé tous les suspects habituels et recherché sur Google toutes les combinaisons de Ruby 1.9.1, de chemin de chargement, de gemmes, de Mac OS X, de freebsd, de crevette et d'autres éléments.L'essentiel est le suivant :

Lorsque je compile ruby1.9.1-p129 à partir de sources sur Mac OS X 10.5, le chemin de chargement par défaut ($ :) que j'obtiens est :

ruby -e "puts $:"
/usr/local/lib/ruby/gems
/usr/local/lib/ruby/site_ruby/1.9.1
/usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/vendor_ruby/1.9.1
/usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/vendor_ruby
/usr/local/lib/ruby/1.9.1
/usr/local/lib/ruby/1.9.1/i386-darwin9.7.0
.

lorsque j'installe la gemme de crevette, par exemple, j'obtiens :

gem which prawn
(checking gem prawn-0.5.0.1 for prawn)
/prawn.rb

et quand j'essaie de l'exiger, j'obtiens :

ruby -e "require 'prawn'"
-e:1:in `require': no such file to load -- prawn (LoadError)
    from -e:1:in `'

La seule façon pour moi de résoudre ce problème est de faire quelque chose de stupide comme ceci :

$: << "/usr/local/lib/ruby/gems/1.9.1/gems/prawn-0.5.0.1/lib"

ce qui, bien entendu, est tout à fait ridicule.La question est donc de savoir comment faire en sorte que Ruby 1.9.1 reconnaisse et suive le chemin correct des gemmes ?Je n'ai jamais eu ce problème avec la version 1.8.7, donc je suppose qu'il est spécifique à la version 1.9.1.Je sens qu'il me manque quelque chose de complètement évident ici et toute aide serait très appréciée !

Était-ce utile?

La solution

paramètre GEM_PATH=/usr/local/lib/ruby/gems/1.9.1

résolu le problème.Je savais que c'était quelque chose de simple.Cela m'énerve qu'il ait fallu TOUTE LA JOURNÉE pour comprendre !!Cela est dû au fait que ce problème n'a jamais été rencontré avec la version 1.8.7 et bien sûr PAS avec RTFM !!

Autres conseils

même problème sur Kubuntu Karmic.

installation:

$ sudo apt-get install build-essential ruby1.9.1-full libsqlite3 libsqlite3-dev rubygems1.9
$ sudo gem install sqlite3-ruby rails thin --no-rdoc --no-ri

résultat:

$ ruby -e "require 'rubygems'; require 'sqlite3'" 
-e:1:in `require': no such file to load -- sqlite3 (LoadError)
        from -e:1:in `<main>'   

solution:

$ export GEM_PATH=/usr/lib/ruby1.9.1/gems/1.9.1/
require 'rubygems'
require 'prawn'

À moins que les choses aient changé dans la version 1.9, vous n'avez plus besoin de rubygems en premier.

La prochaine fois que vous rencontrerez un tel problème, n'oubliez pas de courir gem env à partir de la ligne de commande.C'est ce qui se passe sous Windows, mais le principe est sensiblement le même :

C:\Documents and Settings\a.grimm>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.9.1 (2010-01-10 patchlevel 378) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby19/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: C:/Ruby19/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Ruby19/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/Ruby19/lib/ruby/gems/1.9.1
     - C:/Documents and Settings/a.grimm/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/

Je cherche une réponse différente au même problème.Dans certaines situations (par ex.tâches de démarrage du système) il est impossible de définir des variables d'environnement avant l'exécution de Ruby.

Existe-t-il un moyen d'exécuter du code Ruby (v >= 1.9.1) pour exiger des gemmes ?Sans définir GEM_PATH ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top