Не может найти gem rails - Gem:: GemNotFoundException - программирование
Подтвердить что ты не робот

Не может найти gem rails - Gem:: GemNotFoundException

Использование ubuntu 10.04, rvm. Сначала я установил ruby ​​1.9.2 с rvm, gem rails и сгенерировал новый проект и успешно начал его. Все работает нормально. Но после перехода на другой проект, выполнение команды установки пакета (вывод выглядит ОК) и запуск сервера rails - происходит ошибка:

рельсы s

/home/jacek/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/site_ruby/1.9.1/rubygems.rb:316:in `bin_path': can't find gem rails ([">= 0"]) with executable rails (Gem::GemNotFoundException)
from /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin/rails:19:in `<main>'

рельсы списка драгоценных камней

*** LOCAL GEMS ***
rails (3.2.2)

gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.18
  - RUBY VERSION: 1.9.2 (2012-02-14 patchlevel 318) [i686-linux]
  - INSTALLATION DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318
  - RUBY EXECUTABLE: /home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin/ruby
  - EXECUTABLE DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home/jacek/.rvm/gems/ruby-1.9.2-p318
     - /home/jacek/.rvm/gems/[email protected]
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Мой путь (включает EXECUTABLE DIRECTORY:/home/jacek/.rvm/gems/ruby-1.9.2-p318/bin)

/home/jacek/.rvm/gems/ruby-1.9.2-p318/bin:/home/jacek/.rvm/gems/[email protected]/bin:/home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin:/home/jacek/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Буду благодарен за любую помощь

4b9b3361

Ответ 1

Если вы используете команду bundle install для установки ваших драгоценных камней с GEMFILE, она установит драгоценные камни в ваше системное местоположение по умолчанию для драгоценных камней, как указано в комплекте здесь. После этого вы можете использовать команду bundlers bundle exec для выполнения команды в контексте пакета как описано в документах здесь. Это обеспечит выполнение версии используемого вами камня с помощью bundle install.

Если вы посмотрите на домашнюю страницу для поставщика пакетов, в которой содержится обзор документов, в нем указано следующее:

В некоторых случаях выполнение исполняемых файлов без execle exec может работать, если исполняемый файл будет установлен в вашей системе и не будет втягивать какие-либо драгоценные камни, конфликтующие с вашим пакетом.

Однако это ненадежно и является источником значительной боли. Даже если он выглядит так, как будто он работает, он может не работать в будущем или на другой машине.

Я предполагаю, что вы запускаете gem which rails в своей консоли, а затем запустите bundle show rails в своей консоли, установленная по умолчанию установка рельсов для вашей системы отличается от установленной для вашего пакета.

Вы говорите, что используете rvm для управления ruby и gem. Я думаю, вы, возможно, неправильно настроили его. Попробуйте выполнить команду rvm notes на консоли, чтобы убедиться, что вы указали все необходимые/рекомендуемые шаги для установки на вашей ОС. Вы хотите убедиться, что исполняемые файлы для rvm являются первыми вещами, включенными в ваш путь, когда вы в идеале выполняете echo $PATH. Это гарантирует, что драгоценные камни, установленные для rvm, будут выполняться при попытке выполнить их без префикса bundle exec. Если rvm notes не дает вам подсказок, необходимых для этого, попробуйте внимательно просмотреть документы для установки на веб-сайте RVM.

Ответ 2

Для меня только что установленщик. Это заставляет все работать снова.

gem install bundler --no-ri --no-rdoc

Ответ 3

Вы можете переключать версию между Ruby с $ rvm use --default 2.4.0 например

Но для вашей проблемы попробуйте следующее:

  • $ gem install bundler

  • $ gem install rails

Надеюсь, это поможет!

Ответ 4

Я думаю, что команда ниже будет работать

gem pristine rails