Ruby не может найти необходимые библиотеки, хотя драгоценный камень установлен.
Вопрос
Я потратил буквально несколько дней, пытаясь установить Ruby 1.9.2 и заставить его работать с драгоценными камнями :-/ В конце концов я отказался от своей машины с Mac OSX 10.6, и ниже показано текущее состояние моей машины с Ubuntu.Любой совет будет принят с благодарностью!
# ruby test.rb
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- mongo (LoadError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from test.rb:1:in `<main>'
# cat test.rb
require 'mongo'
db = Mongo::Connection.new.db("mydb")
# gem which mongo
/usr/local/rvm/gems/ruby-1.9.2-p0/gems/mongo-1.1.2/lib/mongo.rb
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
Согласно этой странице: http://docs.rubygems.org/read/chapter/19Я дал символическую ссылку, какой рубин я использовал, чтобы он соответствовал тому, который использует драгоценный камень:
# which ruby
/usr/local/rvm/bin/ruby
# ls -l `which ruby`
lrwxrwxrwx 1 root root 44 2010-11-17 13:25 /usr/local/rvm/bin/ruby -> /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# which gem
/usr/local/rvm/bin/gem
# gem -v
1.3.7
# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
Решение
Почему «RVM» отображается в вашем /usr/local/rvm/
дорожка? Вы сделали системную установку, как системный администратор, использующий Администрирование шириной системы Ruby Для нескольких пользователей?
Вы добавили [[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm'
на ваш ~/.bashrc
, ~/.bash_profile
или ~/.profile
(в зависимости от того, что вы настроили)?
Для нормального, каждый день использую, я рекомендую настройку по умолчанию RVM:Установка RVM, Управление RVM Gems.
Примечание для себя: купить запас в RVM. Это слишком круто.
Другие советы
Попробуйте положить следующую строку в начале
require "rubygems"
Работает ли он под Ruby 1.8.7, который по умолчанию установлен в OS X?
Если да, то одно отличие между 1.9.1 и 1.9.2 заключается в том, что "."
не является частью $:
Путь больше.
Я рекомендую вам сделать rvm implode
И удалить текущую настройку. Затем используйте Railsready Сценарий для настройки RVM и Ruby правильно для вас на Ubuntu. Важно понимать, что пока вы не знаете, что вы делаете, вы должны запустить скрипт как пользователь. Надеюсь, это поможет.
На Linux и OS X я всегда должен был поставить «Рубиггемы» в начале. Однако он всегда работал нормально без этой линии в Windows.