2009-06-27 8 views
4

Ok, ich habe gerade die 4 Stunden damit verbracht, diese eine ohne Erfolg herauszufinden. Ich habe alle üblichen Verdächtigen ausprobiert und jede Kombination von Ruby 1.9.1, Load Path, Gems, Mac OS X, Freebsd, Prawn und anderen Sachen gegoogelt. Unterm Strich ist dies:Ruby 1.9.1 Load Path Craziness

Als ich ruby1.9.1-p129 aus Quellen auf Mac OS X 10.5, die Standard-Lastpfad ($ :) Ich kompilieren erhalten 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 die Garnelen installieren Juwel, zum Beispiel, die ich erhalten:

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

und wenn ich versuche, es zu verlangen, die ich erhalten:

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

Der einzige Weg, ich in der Lage waren zu Lösen Sie dies, indem Sie etwas dummes wie folgt tun:

was natürlich absolut lächerlich ist. Die Frage ist also, wie bekomme ich Ruby 1.9.1, um den richtigen Pfad zu erkennen und zu befolgen? Ich hatte dieses Problem mit 1.8.7 noch nie, also nehme ich an, dass es 1.9.1 spezifisch ist. Ich fühle, dass ich hier etwas völlig Offensichtliches vermisse und jede Hilfe würde sehr geschätzt werden!

+1

als Update auf diese Frage [RVM] (http://rvm.beginrescueend.com) schnell die bevorzugte Art und Weise immer zu installieren zusätzliche Rubies auf Mac OS und Linux, von einer großen Anzahl von Entwicklern. Scrollen Sie zum Ende dieser Seite und lesen Sie die Seiten "Installation" und "Ruby Gems", bevor Sie RVM installieren. Nach der Installation verwenden Sie 'rvm notes', um herauszufinden, welche Abhängigkeiten Sie benötigen. –

Antwort

9

Einstellung GEM_PATH =/usr/local/lib/Rubin/Edelstein/1.9.1

das Problem gelöst. Ich wusste, dass es etwas Einfaches war. Es ärgert mich nur, dass es den ganzen Tag brauchte, um es herauszufinden !! Dies liegt daran, dieses Problem nie mit 1.8.7 und natürlich NICHT mit RTFM zu haben !!

+0

Froh, dass Sie es geschafft hat! –

1

Sofern sich die Dinge in 1.9 nicht geändert haben, müssen Sie nicht mehr zuerst rubygems benötigen.

+1

Rubin 1.9 nicht mehr benötigt (Wortspiel beabsichtigt) Rubygems, aber nur um gründlich zu sein Ich versuchte das auch ohne Erfolg – ennuikiller

3

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/ 
0

Ich bin für eine andere Antwort auf das gleiche Problem suchen. In einigen Situationen (z. B. Systemstartaufgaben) ist das Setzen von Umgebungsvariablen vor Ruby-Läufen unmöglich.

Gibt es eine Möglichkeit, ruby ​​(v> = 1.9.1) Code zu verwenden, um Edelsteine ​​zu benötigen? Ohne GEM_PATH zu setzen?

+0

Wie in der ursprünglichen Frage angegeben, können Sie den erforderlichen Edelstein Pfad zu $ ​​schieben: – ennuikiller

+1

Die "Lösung" war: Gem.activate ('gem_name'); require ('gem_name'); Insbesondere geht dieses GEM_PATH-Problem mit 1.9.2 verloren. – Simon

1

Wenn Sie das nächste Mal ein Problem haben, vergessen Sie nicht, gem env über die Befehlszeile auszuführen. Dies ist, was unter Windows geschieht, aber das Prinzip ist sehr ähnlich:

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/ 
Verwandte Themen