【问题标题】:/usr/bin/env: ruby.exe: No such file or directory/usr/bin/env: ruby​​.exe: 没有这样的文件或目录
【发布时间】:2013-07-30 18:09:43
【问题描述】:

我是 Rails 的新手,我正在关注tutorial,了解如何制作 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: No such file or directory””并按照答案的建议做了,即在 bin/bundle、bin/rails 和 bin/rake 中将“ruby.exe”更改为“ruby”,但这不起作用.

还有其他提示吗?我已经坚持了几个小时。非常感谢您。

【问题讨论】:

  • 你是如何安装 Ruby 的?导轨? Heroku 工具?你在rvm下运行吗? Rbenv?
  • 它是否说导致此错误的文件名?你可能在某处有一个不好的shebang。
  • 你的操作系统是什么?你的$PATH 是什么? ruby.exe 在哪里?在 Linux 上它可能只是 ruby!
  • 我安装了 Ruby、Rails 和 Heroku 工具带。我通过 RailsInstaller 安装了 ruby​​ 和 rails。我的操作系统是 Windows 7。
  • ruby.exe 是否位于 PATH 环境变量的目录中?

标签: ruby-on-rails ruby heroku deploying


【解决方案1】:

我在从 Windows 移植过来的存储库上遇到了类似的问题。

事实证明,应用程序 bin 目录中的几个脚本仍然有一个指向 ruby.exe 的 shebang 行 (#!/usr/bin/env ruby.exe) 而不是 ruby。一旦我修复了这些脚本,问题就消失了。

【讨论】:

  • 感谢您发布此信息。我无法弄清楚发生了什么,然后看到你的评论,这解决了我的问题。我下载了一个显然是在 Windows 机器上创建的存储库。
【解决方案2】:

在本地开发机器上,在提交到 git(然后推送到 Heroku)之前,尝试将行尾更改为 Unix 行尾(而不是 Windows 行尾)。在 *nix 机器上,你可以通过运行 dos2unix myfile.rb

来做到这一点

如果行尾错误,Heroku 上加载的 Linux 将寻找 ruby^M 而不是 ruby,当然不会找到它,并给出这个确切的错误消息。

【讨论】:

  • PC 换行不会导致日志报告 .exe 扩展。
  • 谢谢,伙计!拯救了我的一天,我用过sudo apt install dos2unix :)
【解决方案3】:

命令通常是heroku run rake db:migrate。你应该试试这个,而不是heroku run rails db:migrate。

确保您已将应用推送到 heroku。当它推送到 heroku 时,请确保它也被检测为 rails 应用程序。 heroku 可能没有检测到 rails 应用程序,因此它设置的环境没有安装 ruby​​。但这可能只是命令名称中的错误(rails 而不是rake)。

【讨论】:

  • 我的错,这是 stackoverflow 帖子中的错字。我正在尝试 heroku run rake db:migrate。感谢您指出这一点,现在编辑。
  • 该死,希望就是这样 - 这将是一个简单的解决方案!
猜你喜欢
  • 1970-01-01
  • 2016-02-20
  • 2013-03-11
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-04
相关资源
最近更新 更多