"bin/rails: нет такого файла или каталога" с Ruby 2 & Rails 4 на Heroku - программирование
Подтвердить что ты не робот

"bin/rails: нет такого файла или каталога" с Ruby 2 & Rails 4 на Heroku

Во время выполнения Rails 4 Бета версии Michael Hartl Учебник Ruby on Rails, мое приложение не запускается Heroku, но отлично работает локально с bundle exec rails server. При проверке heroku logs -t отображается следующая ошибка:

$ heroku[web.1]: State changed from crashed to starting
$ heroku[web.1]: Starting process with command `bin/rails server 
-p 33847 -e $RAILS_ENV`
$ app[web.1]: bash: bin/rails: No such file or directory
$ heroku[web.1]: Process exited with status 127
$ heroku[web.1]: State changed from starting to crashed
$ heroku[web.1]: Error R99 (Platform error) -> Failed to launch the 
dyno within 10 seconds
$ heroku[web.1]: Stopping process with SIGKILL

Если я heroku run bash и проверьте каталог bin, я вижу, что существует не a rails исполняемый файл:

~$ ls bin
erb  gem  irb  node rdoc  ri  ruby  testrb

Чем я ошибся? Я точно следил за учебником.

4b9b3361

Ответ 1

После битвы с этим немного, я заметил, что у моего проекта Rails 4 был каталог /bin, в отличие от некоторых старых проектов Rails 3, которые я клонировал. /bin содержит 3 файла, bundle, rails и rake, но они не попадали в Heroku, потому что у меня был bin в моем глобальном файле .gitignore.

Это довольно распространенное правило игнорирования, если вы работаете с Git и другими языками (Java и т.д.), поэтому исправить это:

  • Удалите bin из ~/.gitignore
  • Выполнить bundle install
  • Зафиксируйте свой изменяется с помощью git add . и git commit -m "Add bin back"
  • Нажмите на свои изменения в Heroku с помощью git push heroku master

Ответ 2

У меня была эта проблема, так как я обновился до rails 4.0.0

Запустите эту команду

rake rails:update:bin

Вы можете перейти сюда для получения дополнительной информации https://devcenter.heroku.com/articles/rails4

Ответ 3

Шаги:

  • bundle config --delete bin # Отключить генератор-заглушку Bundler

  • rake rails:update:bin # Используйте новые исполняемые файлы Rails 4

  • git add bin or git add bin -f # Добавить элемент управления bin/to source

  • git commit -a -m "you commit message"

  • git push heroku master

  • heroku open

Ответ 4

У меня была эта проблема, потому что разрешения в моем каталоге ~/bin были 644 вместо 755. Запуск rake rails:update:bin локально (на Mac/* nix), а затем нажатие изменений устранило проблему.

Ответ 5

У нас не было каталога myapp/bin в нашем приложении rails 4, поэтому мы создали его, а затем скопировали в файл моего приложения / script/rails, а также пакет и файлы рейка из-под rvm/ruby ​​/bin, а затем добавили их в репо для git и подтолкнули его к героку, и все было хорошо.

Ответ 6

Я могу подтвердить, что работает rake rails:update:bin работает, как сказал @Ryan Taylor.

Я думаю, что у меня была эта проблема, потому что я изначально создал это приложение Rails в Windows. Выполнение приведенной выше команды для Linux было решено для меня.

Кроме того, при переходе с Windows на Linux для разработки рекомендуется удалить файл Gemfile.lock и запустить bundle install, чтобы сгенерировать его снова, не указав в нем конкретные шрифты Windows.

Ответ 7

У меня была та же самая проблема, что и вы. Проблема заключалась в том, что папка bin никогда не была перенесена в репозиторий heroku.

Я посмотрел, я посмотрел, а затем снова посмотрел, не было правила в файле .gitignore для bin/folder...

Затем, после большой боли и муки, я понял, что за пару месяцев до того, как я создал глобальный .gitignore, который будет игнорировать все папки bin всех моих репозиториев (почему лорд, почему?).

Я удалил глобальный .gitignore, и все работало нормально.