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

时间:2011-05-12 14:37:47

标签: ruby-on-rails heroku

我尝试在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服务器时遇到以下错误:

command not found: app/bin/aapt version

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

2 个答案:

答案 0 :(得分:5)

我是如何让这个工作的,但是要注意,Heroku不支持这个解决方案。 Heroku支持的直接引用是“你是靠自己。”

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

    系统调用将返回true或false。

答案 1 :(得分:0)

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