Ruby 1.9.1 сумасшедший путь - PullRequest
4 голосов
/ 28 июня 2009

Хорошо, я только что провел 4 часа, пытаясь выяснить это без успеха. Я попробовал всех обычных подозреваемых и погуглил все комбинации ruby ​​1.9.1, пути загрузки, гемов, mac os x, freebsd, prawn и других вещей. Суть в следующем:

Когда я компилирую ruby1.9.1-p129 из исходников на Mac OS X 10.5, путь загрузки по умолчанию ($ :), который я получаю:

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
.

например, когда я устанавливаю камень креветок, я получаю:

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

и когда я пытаюсь потребовать это, я получаю:

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

Единственный способ решить эту проблему - сделать что-то глупое, как это:

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

что, конечно, совершенно нелепо. Итак, вопрос в том, как мне получить ruby ​​1.9.1 для распознавания и следования правильному пути драгоценных камней? У меня никогда не было этой проблемы с 1.8.7, поэтому я предполагаю, что это специфично для 1.9.1. Я чувствую, что упускаю что-то совершенно очевидное здесь, и любая помощь будет высоко ценится!

Ответы [ 5 ]

9 голосов
/ 28 июня 2009

настройка GEM_PATH = / usr / local / lib / ruby ​​/ gems / 1.9.1

решил проблему. Я знал, что это было что-то простое. Просто усугубляет меня, что потребовался ВСЕ ДЕНЬ, чтобы выяснить !! Это связано с тем, что никогда не было этой проблемы с 1.8.7 и, конечно, НЕ RTFM !!

3 голосов
/ 01 ноября 2009

такая же проблема на kubuntu karmic.

установка:

$ 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

результат:

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

решение:

$ export GEM_PATH=/usr/lib/ruby1.9.1/gems/1.9.1/
1 голос
/ 21 марта 2011

В следующий раз, когда у вас возникнет такая проблема, не забудьте запустить gem env из командной строки. Это то, что происходит в Windows, но принцип почти такой же:

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/
1 голос
/ 28 июня 2009
require 'rubygems'
require 'prawn'

Если в 1.9 ничего не изменилось, то вам больше не нужно сначала требовать рубинов.

0 голосов
/ 22 сентября 2010

Я ищу другой ответ на ту же проблему. В некоторых ситуациях (например, при запуске системы) установка переменных среды перед запуском ruby ​​невозможна.

Есть ли способ запустить код ruby ​​(v> = 1.9.1), требующий гемов? Без настройки GEM_PATH?

...