windows heroku запустить rake db: ошибка переноса "/usr/bin/env: ruby.exe: такого файла или каталога нет"

Я довольно новичок в Rails, и большую часть этого я следовал учебнику по Ruby on Rails. С тех пор я решил сделать свое собственное приложение, но с использованием бета-версии Rails 4. Я установил PostgreSQL на свой локальный компьютер (Windows 7) и завершил разработку. Все отлично работает! (Я люблю Rails гораздо больше, чем работу на C#, ASP, .NET, которую я зарабатываю на жизнь!)

Однако, как только я решил подтолкнуть Героку, я выдернул свои волосы. До толчка к Heroku я сделал стандарт:

c:\Sites\elms>git add .
c:\Sites\elms>git commit -m "My comment"
c:\Sites\elms>git push
c:\Sites\elms>git push heroku master

Я скачал и установил Heroku Toolbelt (не heroku жемчужина.) Первая ошибка сказала мне, что мне нужно убедиться, что мой Gemfile указал Ruby >= 1.9.3, поэтому я добавил "ruby 1.9.3" в начало моего Gemfile:

source 'https://rubygems.org'
ruby "1.9.3"

gem 'rails', '4.0.0.beta1'

gem 'pg'
gem 'haml-rails'
gem 'httparty'
gem 'devise', git: 'git://github.com/plataformatec/devise.git', branch: 'rails4'
gem 'cancan'
gem 'bootstrap-sass'
gem 'formtastic'
gem 'formtastic-plus-bootstrap'

group :development do
  gem 'annotate'
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'guard-spork'
  gem 'guard-rspec'
  gem 'meta_request'
  gem 'rb-notifu'
  gem 'schema_to_scaffold'
  gem 'wdm', :platforms => [:mswin, :mingw], :require => false
  gem 'win32console'
end

group :development, :test do
  gem 'rspec-rails'
  gem 'pry'
  gem 'spork-rails', git: 'git://github.com/sahilm/spork-rails.git', branch: 'rails-4'
  gem 'spork', '~> 1.0.0rc3'
end

group :test do
  gem 'capybara'
  gem 'factory_girl_rails'
  gem "shoulda-matchers"
end

group :assets do
  gem 'sass-rails',   '~> 4.0.0.beta1'
  gem 'coffee-rails', '~> 4.0.0.beta1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'    
gem 'turbolinks'
gem 'jbuilder', '~> 1.0.1'

Пуш наконец работал без проблем, но когда я попытался перенести базу данных, я получил следующее:

c:\Sites\elms>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2205
/usr/bin/env: ruby.exe: No such file or directory

Я также попробовал: heroku run bin/rake db:migrateи это дает ту же ошибку. Я использую " Начало работы с Rails 4.x" в Heroku, чтобы перенести приложение Rails 4 в Heroku. Любая помощь будет принята с благодарностью!

О, у меня тоже была проблема после запуска:

c:\Sites\elmx>gem install rails --pre

Я решил это, добавив C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin; в мою переменную среды Path в Windows 7 (она выдала мне ошибку, что она не может найти рельсы при попытке выполнить что-либо, например:

rails -v
rails g controller User

Но если бы я просто набрал:

rails

Это дало бы мне все команды, которые я мог использовать (как будто бы rails -h)

Я настроил свой компьютер с помощью установщика Windows Rails, а затем установил гем Rails 4. Это очень расстраивает, и я искал в интернете, пытаясь найти кого-то с той же проблемой.

РЕДАКТИРОВАТЬ 1:

Я просто удалил свою переменную среды Path пользователя и изменил системную переменную среды Path, чтобы она выглядела так:

 C:\RailsInstaller\Ruby1.9.3\bin;C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin;C:\Program Files (x86)\git\cmd;C:\Program Files (x86)\Heroku\bin

Обновил мою переменную пути до вышеприведенного и удалил Heroku Toolbelt, затем переустановил ее (следовательно, часть Heroku находится в переменной пути) и попытался сделать следующее:

c:\Sites\elms>ruby -v
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

c:\Sites\elms>rails -v
Rails 4.0.0.beta1

c:\Sites\elms>heroku -v
 !    `-v` is not a heroku command.
 !    Perhaps you meant `-h`.
 !    See `heroku help` for a list of available commands.

c:\Sites\elms>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2100
/usr/bin/env: ruby.exe: No such file or directory

c:\Sites\elms>heroku run bin/rake db:migrate
Running `bin/rake db:migrate` attached to terminal... up, run.2872
/usr/bin/env: ruby.exe: No such file or directory

РЕДАКТИРОВАТЬ 2:

Таким образом, я получил немного дальше в этом предприятии. Я узнал, что могу выполнить:

c:\Sites\elms>heroku run bash
~ $ cd bin
~/bin $ ruby rake db:migrate

И тогда запускаются грабли и переносится моя база данных на Heroku. Но проблема усугубляется! Я пытаюсь перейти на страницу, и она говорит мне, что что-то не так, поэтому я запускаю файл журнала, и вот что я получаю:

c:\Sites\elms>heroku logs
2013-03-16T05:34:20+00:00 heroku[api]: Enable Logplex by
2013-03-16T05:34:20+00:00 heroku[api]: Release v2 created by 
2013-03-16T05:34:36+00:00 heroku[slugc]: Slug compilation started
2013-03-16T05:35:37+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 13423 -e $RAILS_ENV`
2013-03-16T05:35:37+00:00 heroku[slugc]: Slug compilation finished
2013-03-16T05:35:37+00:00 app[web.1]: bash: bin/rails: No such file or directory

2013-03-16T05:35:39+00:00 heroku[web.1]: Process exited with status 127
2013-03-16T05:35:39+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 33539 -e $RAILS_ENV`
2013-03-16T05:35:40+00:00 app[web.1]: /usr/bin/env: ruby.exe: No such file or directory
2013-03-16T05:35:41+00:00 heroku[web.1]: Process exited with status 127
2013-03-16T05:35:41+00:00 heroku[web.1]: State changed from starting to crashed
2013-03-16T05:35:41+00:00 heroku[web.1]: State changed from crashed to starting
2013-03-16T05:35:44+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 23452 -e $RAILS_ENV`
2013-03-16T05:35:44+00:00 app[web.1]: /usr/bin/env: ruby.exe: No such file or directory

Это действительно расстраивает. Я понятия не имею, какого черта /usr/bin/env является. Единственное, что я могу догадаться, это то, что PATH для Windows. Если это так, то почему сервер не знает, где ruby.exe является?

Я сделал приложение, не относящееся к Rails 4, и смог опубликовать его в Heroku и просмотреть без проблем. Это действительно действует мне на нервы.

4 ответа

Вам необходимо изменить в вашем приложении первую строку из 3 файлов:

bin/bundle
bin/rails
bin/rake

Вместо

#!/usr/bin/env ruby.exe

должно быть

#!/usr/bin/env ruby

Вот почему ошибка:

/usr/bin/env: ruby.exe: No such file or directory

Тогда вы успешно выполните:

heroku run rake db:migrate

Это работа для меня.

У меня была похожая проблема, и, как уже говорили другие, изменение ниже помогло.

#!/usr/bin/env ruby.exe в #!/usr/bin/env ruby

Однако мне также нужно было удалить некоторые скрытые возвраты каретки, которые все еще присутствовали при разработке в Windows (я полагаю?).

я использовал dos2unix сделать это.

dos2unix bin/bundle bin/rake bin/rails

После этого я совершил свои изменения, подтолкнул к героку и все было хорошо.

У меня была такая же проблема, изменил ruby.exe на ruby ​​в трех файлах, как описано выше, выполнил


    git push heroku master
шаг, который сказал мне, что все было в курсе. Пытаясь

    heroku run rake db:migrate
шаг снова, это все еще не работало; Я получил ту же ошибку об отсутствии такого файла или каталога для ruby.exe. Я изучил свой gemfile.lock в соответствии с указаниями, но не увидел ничего похожего на Windows.

Затем я выполнил это:


    git add .
    git commit -m "My comment"
и попробовал еще раз с

    git push heroku master
На этот раз прошли многочисленные сообщения, в том числе:

    Removing Gemfile.lock потому что он был создан на Windows.
так что, возможно, с этим было что-то не так, и я просто не знал, что мне в этом нужно искать.

Попытка снова


    heroku run rake db:migrate
похоже, сработало, как я получил

    Running rake db:migrate подключен к терминалу... работает 3260
    ==  CreateUsers: перенос ================================================== =======
    - create_table(: пользователи)
       -> 0,0409 с
    == CreateUsers: перенесено (0.0412s) ==========================================

Мое лучшее предположение заключается в том, что изменения, связанные с удалением.exe из комплекта, граблей и рельсов, фактически не выдвигаются с первой попытки гит пуш герой мастер и мерзавец добавить. а также git commit -m "Мой комментарий" были необходимы, чтобы заставить его подтолкнуть вверх. Это моя первая попытка чего-либо с помощью git/heroku/ruby, поэтому я не знаю достаточно, чтобы сказать, почему потребовались другие две команды, но оставлю свой опыт документированным здесь на случай, если это поможет кому-то еще.
Большое спасибо за подсказку выше, что это был.exe в этих трех файлах, который вызвал проблему.

bin/bundle
bin/rails
bin/rake

Вместо

#!/usr/bin/env ruby.exe

должно быть

#!/usr/bin/env ruby

(спасибо предыдущему посту)

убедитесь, что в gemfile.lock нет ссылок на окна - их можно просто удалить

затем

git push heroku master

если есть еще проблемы используйте

логи герою (копирование текста в текстовый редактор облегчает вырезание и вставку для решений)

Попробуй это:

sudo apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev

а затем установите Нокогири:

gem install nokogiri
Другие вопросы по тегам