Я вижу драгоценный камень в "списке драгоценных камней", но "нет такого файла для загрузки",

Я на Ubuntu10

sudo apt-get install ruby1.9.1-full

затем загрузите источники rubygem 1.3.7 и установите его

sudo ruby setup.rb

то, например, установите sinatra

sudo gem install sinatra

Наконец, откройте irb и введите

require "rubygems"
require "sinatra"

и получить ошибку

LoadError: no such file to load -- sinatra
    from (irb):2:in `require'
    from (irb):2
    from /usr/bin/irb:12:in `<main>'

Ответ 1

У меня была именно эта проблема. Проблема в том, что драгоценный камень и рубин не согласны с тем, где живут драгоценные камни. Сравните их:

ruby -e "puts Gem.path"

gem env

gem which sinatra

Если вы похожи на мою настройку, вы заметите, что есть запись в gem env paths, которая не находится в Gem.path, и что именно там, где будет заявляться синатра. В моем случае мне пришлось добавить

export GEM_HOME=/usr/lib/ruby/gems/1.9.1

в мой .profile. Тогда все были счастливы.

Ответ 2

Выполнить

sudo gem install sinatra --verbose

и обратите внимание на путь, в котором устанавливается камень.

Затем попробуйте это в irb

puts $LOAD_PATH

и убедитесь, что gem установлен в одном из каталогов в $LOAD_PATH

И в идеале просто начните использовать http://rvm.beginrescueend.com/

Ответ 3

Я обычно ударяю эту ошибку, когда забываю:

require 'rubygems'

Было бы полезно, если бы вы предоставили фактический образец кода, хотя, какой камень вы хотите потребовать, и какую версию Ruby вы используете, если это не решит проблему.

Ответ 4

Это было до этого здесь много раз. Проблема в том, что у вас, вероятно, есть две версии ruby. Один устанавливает камень, а другой пытается его использовать. Сделайте это в терминале:

$ which -a ruby

Или это:

$ which -a gem

чтобы узнать, установлено ли более одной версии рубинового/драгоценного камня. Если это так - удалите одну версию (через $ rm или менеджер пакетов вашей системы).

Ответ 5

Я использую ruby ​​gems 1.8.7 для проекта. Я получал ту же ошибку. Используйте строку require 'rubygems'. Он всегда должен быть первым требованием, иначе вы можете получить сообщение об ошибке. В моем коде у меня был

require 'watir'
require 'rubygems'
# more code

Я получил ошибку - в `require ': нет такого файла для загрузки - watir (LoadError). Когда я впервые надел рубигемы, ошибка исчезла, и все сработало. Я не знаю почему это происходит.

Кстати, я попробовал ответить user24359, и мне это не помогло.

C:\code>ruby -e "puts Gem.path"
-e:1: uninitialized constant Gem (NameError)