/usr/bin/env: ruby.exe: нет такого файла или каталога
Я новичок в Rails и следую этому уроку о том, как создавать приложения на Rails. Я не могу заставить базу данных перейти на мои приложения heroku.
В настоящее время я нахожусь в начале главы 3, пытаясь настроить приложение для использования в оставшейся части курса.
Я отлично следовал этому уроку, и на данный момент я уже создал два приложения, развернул их на heroku и перенес данные просто отлично, но в третий раз это не работает.
Мне удалось создать страницу heroku и добавить приложение к ней, но я просто не могу перенести данные.
Я набрал:
heroku run rake db:migrate
и получил эту ошибку:
/usr/bin/env: ruby.exe: No such file or directory.
Я предполагаю, что это означает, что он ищет файл в этом каталоге и не находит его. Как я могу изменить, где это выглядит?
Я проверил " windows heroku run rake db: migrate error" /usr/bin/env: ruby.exe: нет такого файла или каталога "" и сделал то, что рекомендовали ответы, то есть изменил "ruby.exe" на "ruby" в bin/bundle, bin/rails и bin/rake, но это не сработало.
Любые другие советы? Я застрял на этом в течение нескольких часов. Огромное спасибо заранее.
3 ответа
У меня была похожая проблема в хранилище, которое я перенес из окон.
Оказывается, что несколько сценариев в каталоге bin приложения все еще имели строки shebang (#!/usr/bin/env ruby.exe
) чтобы ruby.exe
вместо ruby
, Как только я исправил эти скрипты, проблема ушла.
Команда обычно heroku run rake db:migrate
, Вы должны попробовать это вместо heroku run rails db:migrate
,
Удостоверьтесь, что вы загрузили ваше приложение в heroku. Когда он нажимает на heroku, убедитесь, что он также обнаружен как приложение rails. Вполне возможно, что heroku не обнаруживает приложение rails, поэтому в среде, в которой оно установлено, не установлено ruby. Но это может быть просто ошибка в имени команды (rails
вместо rake
).
На вашем локальном компьютере разработчика, прежде чем совершать git (а затем отправлять в Heroku), попробуйте изменить окончание строки на конец строки Unix (а не на конец строки Windows). На машине *nix вы бы сделали это, запустив dos2unix myfile.rb
Если конец строки неправильный, Linux, загруженный на Heroku, будет искать ruby^M
и не для ruby
и, конечно, не найдет его и выдаст это точное сообщение об ошибке.