Windows 7 windows heroku运行rake db:迁移错误“/usr/bin/env:ruby.exe:没有这样的文件或目录;

Windows 7 windows heroku运行rake db:迁移错误“/usr/bin/env:ruby.exe:没有这样的文件或目录;,windows-7,heroku,ruby-on-rails-4,Windows 7,Heroku,Ruby On Rails 4,我对Rails非常陌生,大部分时间我都在学习。此后,我决定开发自己的应用程序,但在测试版中使用Rails 4 gem。我已经在本地计算机(Windows7)上安装了PostgreSQL并完成了开发。一切都很好!(我爱Rails远胜于我以C#、ASP、.NET为生的工作!) 然而,一旦我决定去Heroku,我就开始发疯了。在推到Heroku之前,我做了以下标准: c:\Sites\elms>git add . c:\Sites\elms>git commit -m "My commen

我对Rails非常陌生,大部分时间我都在学习。此后,我决定开发自己的应用程序,但在测试版中使用Rails 4 gem。我已经在本地计算机(Windows7)上安装了PostgreSQL并完成了开发。一切都很好!(我爱Rails远胜于我以C#、ASP、.NET为生的工作!)

然而,一旦我决定去Heroku,我就开始发疯了。在推到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工具带(不是Herokugem)。第一个错误告诉我需要确保我的
Gemfile
指定的Ruby>=1.9.3,因此我在
Gemfile
的顶部添加了“Ruby 1.9.3”:

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
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
我也尝试过:
heroku运行bin/rake db:migrate,它给出了相同的错误。我正在使用将Rails 4应用程序推送到Heroku。任何帮助都将不胜感激

哦,跑步后我也遇到了一个问题:

c:\Sites\elmx>gem install rails --pre
我通过添加
C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin解决了这个问题
到Windows 7中的my environment Path变量(这给了我一个错误,在尝试执行以下操作时找不到rails):

rails -v
rails g controller User
但如果我只是输入:

rails
它将提供我可以使用的所有命令(就像运行
rails-h

我使用Windows Rails安装程序安装了我的机器,然后安装了Rails 4 gem。这非常令人沮丧,我在互联网上搜索,试图找到有同样问题的人

编辑1:

我刚刚删除了我的用户路径环境变量,并修改了我的系统路径环境变量,如下所示:

 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
将my path变量更新为上述版本,并卸载Heroku Toolbelt,然后重新安装它(因此Heroku部件位于path变量中),并尝试以下操作:

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
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
然后运行rake并在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
。我唯一能猜到的是它就像Windows的
路径
。如果是这样,为什么服务器不知道
ruby.exe
在哪里


我确实制作了一个非Rails 4应用程序,并且能够将其发布到Heroku,并在没有问题的情况下查看它。这真的让我很紧张。

您需要在应用程序中更改3个文件中的第一行:

bin/bundle
bin/rails
bin/rake
bin/bundle
bin/rails
bin/rake
反而

#!/usr/bin/env ruby.exe
#!/usr/bin/env ruby.exe
一定是

#!/usr/bin/env ruby
#!/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.exe
一定是

#!/usr/bin/env ruby
#!/usr/bin/env ruby
(感谢以前的帖子)

确保gemfile.lock中没有对窗口的引用-它们可以被删除

然后

如果仍然存在问题,请使用


heroku日志(将文本复制到文本编辑器可以更容易地剪切和粘贴以获得解决方案)

我遇到了同样的问题,如上所述,将三个文件中的ruby.exe更改为ruby,执行

    git push heroku master
所以,也许它有问题,我只是不知道我应该在里面寻找什么

再次尝试

    heroku run rake db:migrate

我最好的猜测是,从bundle、rake和rails中删除.exe的更改实际上并没有在第一次尝试时得到提升 git推送heroku主机 和 git添加。 及 git commit-m“我的评论” 这是我第一次尝试使用git/heroku/ruby,所以我不知道为什么需要另外两个命令,但请将我的经验记录在这里,以防对其他人有所帮助。

非常感谢上面的提示,是这三个文件中的.exe导致了问题。

我也遇到了类似的问题,正如其他人所说的,更改下面的帮助

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

然而,我还需要删除一些隐藏的回车符,这些回车符最初在Windows上开发时仍然存在(我想是吧?)

我使用了
dos2unix
来实现这一点

dos2unix bin/bundle bin/rake bin/rails
在那之后,我提交了我的更改,推给heroku,一切都很好。

试试这个:

sudo apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev
然后安装Nokogiri:

gem install nokogiri

我在windows xp上遵循了相同的步骤,在找到这篇文章后,也不得不删除.exe。之后,在我遵循您的指示之前,没有任何更改。现在工作很好!我很难让cron从Rails内部发送自动消息,然后我发现了这个答案。您救了我的命,如果可以,我会给您10票。谢谢。在我的情况下,我所需要的只是将
you\u app/script/rails
的第一行从
#!/usr/bin/env ruby.exe
更改为
#!/usr/bin/env ruby
。仔细查看这一行-很容易忽略它,因为编辑器将这一行视为注释:)