Frage

Ok, ich habe gerade verbrachte die 4 Stunden damit, diese Figur ein, ohne Erfolg.Ich habe versucht, all die üblichen verdächtigen und gegoogelt jede Kombination von ruby 1.9.1, load path, gems, mac os x,freebsd,Garnelen und andere Sachen.Unter dem Strich ist dies:

Wenn ich kompilieren ruby1.9.1-p129 aus Quellen auf mac os x 10.5, die Standard-load-path ($:) ich bekomme, ist:

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
.

wenn ich installieren die Garnelen-gem, zum Beispiel, bekomme ich:

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

und wenn ich versuche, es erfordern, den ich bekommen:

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

Die einzige Art, wie ich in der Lage gewesen zu beheben, dies ist etwas zu tun, zu dumm, wie diese:

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

die, natürlich, ist absolut lächerlich.Die Frage ist also, wie bekomme ich ruby 1.9.1 zu erkennen, und befolgen Sie die richtigen Edelsteine Weg?Ich hatte nie dieses Problem mit 1.8.7, also bin ich vorausgesetzt, es 1.9.1 bestimmte.Ich glaube, ich bin etwas fehlt ganz offensichtlich hier, und jede Hilfe wäre sehr geschätzt werden!

War es hilfreich?

Lösung

Einstellung GEM_PATH=/usr/local/lib/ruby/gems/1.9.1

das problem gelöst.Ich wusste, es war etwas einfaches.Nur verschärft mir, dass es dauerte den GANZEN TAG, um herauszufinden,!!Dies ist aufgrund, dass er nie dieses Problem mit 1.8.7 und natürlich NICHT RTFM!!

Andere Tipps

dasselbe problem auf 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

Ergebnis:

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

Lösung:

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

Wenn sich die Dinge verändert haben in 1.9 dass Sie müssen nicht mehr benötigen, Sie rubygems erste.

Beim nächsten mal haben Sie ein solches Problem, nicht zu vergessen, gem env von der Befehlszeile aus.Dies ist, was passiert, auf Windows, aber das Prinzip ist gleich:

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/

Ich bin auf der Suche nach einer anderen Antwort auf das gleiche problem.In einigen Situationen (dh.system start-up Aufgaben) festlegen von Umgebungsvariablen, bevor ruby ausgeführt wird, ist unmöglich.

Gibt es eine Möglichkeit, in laufen, ruby (v >= 1.9.1) code zu erfordern Edelsteine?Ohne Einstellung GEM_PATH?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top