нет такого файла для загрузки - rubygems (LoadError) - PullRequest
62 голосов
/ 24 мая 2010

Я недавно установил рельсы в fedora 12. Я также новичок в Linux. В Windows 7 все работает нормально. Но в Linux у меня много проблем. Помогите пожалуйста!

Я установил все необходимое, чтобы мои базовые скрипты / сервер работали. Я имею эту ошибку от boot.rb всплывающего при попытке сценария / сервера. Некоторые детали, которые я хотел бы дать здесь:

Каталоги, в которых установлены рельсы, ruby ​​и gem,

[vineeth@localhost my_app]$ which ruby
/usr/local/bin/ruby

[vineeth@localhost my_app]$ which rails
/usr/bin/rails

[vineeth@localhost my_app]$ which gem
/usr/bin/gem

И когда я запускаю скрипт / сервер, это ошибка.

[vineeth@localhost my_app]$ script/server
./script/../config/boot.rb:9:in `require': no such file to load -- rubygems (LoadError)
 from ./script/../config/boot.rb:9
 from script/server:2:in `require'
 from script/server:2

И файл PATH выглядит так

[vineeth@localhost my_app]$ cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin/ruby:$PATH"

Полагаю, это как-то связано с файлом PATH. Дайте мне знать, что мне нужно изменить здесь. Если я хочу внести другие изменения, пожалуйста, дайте мне знать.

Ответы [ 14 ]

102 голосов
/ 24 мая 2010

У меня есть догадка, что у вас есть две версии ruby. Пожалуйста, вставьте вывод следующей команды:

$ which -a ruby

обновлено относительно комментария:

Разбейте одну версию и оставьте только одну. У меня была та же проблема с двумя версиями, которые искали драгоценные камни в разных местах. Я сходил с ума в течение нескольких недель. Поставь здесь щедрость, получи мне тот же ответ, что и я тебе.

Все, что я сделал, - это одна установка ruby ​​и оставила управляемую через порты. Я бы предложил сделать это:

  1. Удаление версии ruby, установленной через порты (yum или любой другой менеджер пакетов).
  2. Удалите версию ruby, поставляемую с ОС (хардкорный rm вручную).
  3. Установить версию ruby ​​из портов с другим префиксом (/usr вместо /usr/local)
  4. Переустановите rubygems
25 голосов
/ 12 сентября 2012

У меня была похожая проблема в Ubuntu из-за установки нескольких копий ruby. (1.8 и 1.9.1) К сожалению, я нуждаюсь в них обоих. Решение заключается в использовании:

$ sudo update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/ruby1.8     50        auto mode
  1            /usr/bin/ruby1.8     50        manual mode
  2            /usr/bin/ruby1.9.1   10        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in manual mode.

После этого установка пакета прошла успешно.

18 голосов
/ 04 мая 2013

ОК, я - нубистка из Ruby, но я исправил это немного иначе, чем ответы здесь, так что, надеюсь, это поможет кому-то еще (tl; dr: я использовал RVM, чтобы переключить системную версию Ruby на ту, которую ожидаетRubyGems).

Во-первых, список всех Ruby, упомянутых Eimantas , послужил отличной отправной точкой:

> which -a ruby
/opt/local/bin/ruby
/Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
/Users/Brian/.rvm/bin/ruby
/usr/bin/ruby
/opt/local/bin/ruby

Экземпляр Ruby по умолчанию, используемый системой, выглядит как 1.8.7:

> ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-darwin10]

, а Rubygems использовала версию 1.9.2, управляемую RVM:

> gem env | grep 'RUBY EXECUTABLE'
  - RUBY EXECUTABLE: /Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

Так что это определенно была проблема.Я сам не использую Ruby (это просто зависимость от сценария системы сборки, который я пытаюсь запустить), поэтому мне было все равно, какая версия была активной для других целей.Поскольку rubygems ожидал, что 1.9.2 уже управляется RVM, я просто использовал RVM, чтобы переключить систему на использование версии 1.9.2 в качестве версии по умолчанию:

> rvm use 1.9.2
Using /Users/Brian/.rvm/gems/ruby-1.9.2-p290

> ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.3.0]

После этого мой "нет такого файла""проблема исчезла, и мой сценарий начал работать.

13 голосов
/ 13 марта 2014

Я просто хотел бы добавить, что в моем случае rubygems не был установлен.

Запуск sudo apt-get install rubygems решил проблему!

12 голосов
/ 09 ноября 2011

Попробуйте запустить проект с:

./script/server

вместо script/server, если вы используете ruby ​​1.9.2 (из странная невозможность требовать конфигурации / загрузки после обновления до ruby ​​1.9.2 )

11 голосов
/ 25 августа 2011

В случае, если кто-то еще ищет эту проблему: я смог исправить мою, найдя неуловимую папку «rubygems», которую я хотел использовать, и добавив ее в переменную среды $ RUBYLIB.

find / -name "rubygems" -print

Как только вы найдете его, добавьте родительский каталог в вашу среду. В bash, вот так:

export RUBYLIB=/path/to/parent

Теперь, если вы запустили gem, он должен подобрать правильный каталог библиотеки, и все готово.

6 голосов
/ 03 августа 2012

У меня была похожая проблема, и я решил ее, настроив RUBYLIB env.

В моем окружении я использовал это:

export RUBYLIB=$ruby_dir/lib/ruby/1.9.1/:$ruby_dir/lib/ruby/1.9.1/i686-linux/:$RUBYLIB
6 голосов
/ 07 декабря 2011

У меня была похожая проблема, я просто запустил тривиальный скрипт ruby, который просто требовал гем, который я хотел ... получил это сообщение об ошибке Когда я изменил заклинание с:

ruby test.rb

до

ruby -rubygems test.rb

Кажется, работает.

1 голос
/ 14 февраля 2018

Это первый ответ, когда Googling 'require': cannot load such file -- ubygems (LoadError) после того, как Google автоматически исправил «ubygems» в «rubygems». Оказывается, это было преднамеренное изменение между Ruby 2.4 и 2.5 ( Ошибка # 14322 ). Сценарии, которые обнаруживают пользовательский каталог gems без учета версии ruby, скорее всего завершатся ошибкой.

Рубин 2,4

ruby -rubygems -e 'puts Gem.user_dir'

Рубин 2,5

ruby -rrubygems -e 'puts Gem.user_dir'
1 голос
/ 05 августа 2016
gem install bundler

исправил проблему для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...