Невозможно выполнить rails s | railties-5.2.3/exe/rails (ошибка загрузки)

#ruby-on-rails

#ruby-on-rails

Вопрос:

Я не могу запустить свой сервер с помощью команд rails s, я должен использовать пакет команд exec rails s, но я предпочитаю использовать командные rails s

Ошибка при запуске команды rails s

 Traceback (most recent call last):
        1: from /home/leopaul/.rbenv/versions/2.5.1/bin/rails:23:in `<main>'
/home/leopaul/.rbenv/versions/2.5.1/bin/rails:23:in `load': cannot load such file -- /home/leopaul/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.3/exe/rails (LoadError)
  

Моя версия rails :

 Rails 5.1.6.2
  

Ответ №1:

Я думаю, что на вашем компьютере установлено несколько версий Rails.

Иногда, когда вы устанавливаете gem, он также поставляется с исполняемым файлом / двоичным файлом. Примерами этого являются: rails, rake, rspec, pry и т.д. Однако, если у вас установлено несколько версий gem, у вас будет несколько версий этих исполняемых файлов. Поэтому, если вы хотите выполнить один из этих двоичных файлов для данного приложения rails, вам может потребоваться устранить неоднозначность, какой исполняемый файл вы хотите — например, для rake v10.1 или для rake v10.2.

Таким образом, для большинства команд вам потребуется запустить bundle exec, чтобы убедиться, что вы используете правильную версию для своего проекта (а также убедиться, что все зависимости также загружены из правильных версий, указанных в вашем Gemfile.блокировка).

Итак, отвечая на ваш вопрос, если вы можете сделать bundle exec rails s и не можете сделать rails s , попробуйте переустановить rails gem на свой локальный компьютер.

 gem install rails
  

затем проверьте текущую версию с помощью rails -v

Комментарии:

1. Я удалил rails из gem, как вы сказали, было много версий, и я записал в свой gemfile версию rails, которая отмечена в gemfile. блокировка я выполнил установку пакета, но когда я использую rails s, у меня та же проблема, поэтому я обязан использовать bundle exec rails s

Ответ №2:

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

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

Ответ №3:

Смотрите документы:http://railsapps.github.io/updating-rails.html

Кажется, что вы установили глобально rails 4 или какую-либо другую версию rails, и это причина, по которой «он не выполняет rails s», как вы говорите, потому что он учитывает rails по умолчанию (глобальная версия rails). Когда вы запускаете bundle exec, он использует команды rails из текущего файла Gemfile, поскольку в вашем файле Gemfile есть rails 5, тогда он работает должным образом.

Также попробуйте создать наборы драгоценных камней для каждого проекта.

В вашем случае попробуйте это:

 bundle update
  

затем выполните

 rails s
  

Надеюсь, это сработает 🙂

Комментарии:

1. Теперь я даже не могу запустить bundle exec rails больше Traceback (most recent call last): 56: from bin/rails:3:in `<main>' 55: from bin/rails:3:in `load' 54: from /home/leopaul/Documents/rpdad/bin/spring:15:in `<top (required)>' 53: from /home/leopaul/Documents/rpdad/bin/spring:15:in `require' 52: from /home/leopaul/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring- [...] 1: from 5.1.6.2/lib/active_support/dependencies.rb:292:in `require': cannot load such file -- bindex (LoadError)

2. Это из-за несовместимой версии библиотеки. Запустите «gem install bundler», а затем «bundle install». Если это не сработает, удалите gemfile. заблокируйте, а затем снова установите пакет. Тогда дайте мне знать.