如何在heroku上执行二进制文件?

发布于 2024-11-06 13:40:16 字数 512 浏览 2 评论 0原文

我尝试在 heroku 上执行二进制文件。我关注这个博客: http://www.verrot.fr/2010/02/24/executing-binary-files-with-ruby-on-rails-and-heroku/

我有以下代码:

@exec = IO.popen("#{Rails.root}/bin/aapt version")
@result = @exec.gets
puts @result

当heroku在本地rails服务器上工作时,我在heroku上遇到以下错误:

command not found: app/bin/aapt version

您知道如何做到这一点吗?或者如果你已经这样做了?

I try to execute a binary on heroku. I follow this blog : http://www.verrot.fr/2010/02/24/executing-binary-files-with-ruby-on-rails-and-heroku/ :

I have the following code :

@exec = IO.popen("#{Rails.root}/bin/aapt version")
@result = @exec.gets
puts @result

I've got the following error on heroku while it's working on local rails server :

command not found: app/bin/aapt version

Have you got any idea on a way to do that ? Or if you already done that ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感情洁癖 2024-11-13 13:40:16

我是如何让它发挥作用的,但请注意,Heroku 不支持此解决方案。 Heroku 支持的直接引用是“你得靠自己”。

  1. 在您的应用程序中创建一个 bin 目录。
  2. 将 Debian etch amd64 二进制文件添加到此目录。例如,添加名为 mongodump 的应用程序。
  3. 让您的代码执行系统调用。示例(注意缺少路径):
系统“bin/mongodump --help”

系统调用将返回 true 或 false。

How I have gotten this to work, but be warned, Heroku does not support this solution. The direct quote from Heroku Support is "you are on your own."

  1. Create a bin directory in your application.
  2. Add Debian etch amd64 binaries to this directory. For example, add application called mongodump.
  3. Have your code execute system call. Example (note the lack of path):
system "bin/mongodump --help"

A true or false will be returned from the system call.

糖粟与秋泊 2024-11-13 13:40:16

您是否确保本地二进制文件的权限允许执行? Git 具有权限意识。如果没有,您需要确保该文件允许可执行权限(如果必须,请修改权限),然后将修改后的文件添加到 git 并重新推送到 heroku,然后重试。请记住,用于执行文件的用户 heroku 可能是也可能不是所有者,因此您可能需要使用它们才能让 heroku 识别它。只是 chmod 777 bin/executable_name 作为最后的手段。

Did you make sure the permissions on your local binary allow execution? Git is permissions-aware. If not, you need to make sure the file allows executable permissions (modify the permissions if you must), then add the modified file to git and repush to heroku before trying again. Keep in mind that the user heroku will use to execute the file may or may not be the owner, so you may need to play with them in order to get heroku to recognize it. Just chmod 777 bin/executable_name as a last resort.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文