Выполнение бинарного пакета из приложения Rails на Heroku - PullRequest
0 голосов
/ 17 марта 2012

Существует покерная библиотека с открытым исходным кодом под названием Poker Eval, которую я пытаюсь интегрировать в свое приложение Heroku Rails.

Локально, я добавил интересующий меня пакет (называемый «pokenum») в корневой каталог моего приложения и может успешно выполнить его с помощью консоли:

$ rails c
Loading development environment (Rails 3.1.2)
1.9.2-p290 :001 > `pwd`
=> "/Users/matt/testapp\n" 
1.9.2-p290 :003 > `/Users/matt/testapp/pokenum As Ah - Ts Th`
=> "Holdem Hi: 1712304 enumerated boards\ncards     win   %win      lose  %lose       tie   %tie        EV\nAs Ah 1390140  81.19    314314  18.36      7850   0.46     0.814\nTs Th  314314  18.36   1390140  81.19      7850   0.46     0.186\n" 

Однако, когда я загружаю приложение в Heroku и выполняю те же действия, я получаю «Errno :: ENOEXEC: ошибка формата Exec»:

$ heroku run console
Running console attached to terminal... up, run.3
Loading production environment (Rails 3.1.2)
irb(main):001:0> `pwd`
=> "/app\n"
irb(main):002:0> `/app/pokenum As Ah - Ts Th`
Errno::ENOEXEC: Exec format error - /app/pokenum As Ah - Ts Th
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.1.2/lib/active_support/core_ext/kernel/agnostics.rb:7:in ``'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.1.2/lib/active_support/core_ext/kernel/agnostics.rb:7:in ``'
from (irb):2
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.2/lib/rails/commands/console.rb:45:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.2/lib/rails/commands/console.rb:8:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.2/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

Похоже, что, возможно, есть простое решение, но я не смог понять его. Большинство результатов Google для этого сообщения об ошибке показывают, что есть проблема с именем пути, но на основании результатов pwd у меня, кажется, есть полный путь. Может быть, это как-то связано с архитектурой Heroku?

Есть идеи, что может быть причиной этого или как я могу устранить неисправность в дальнейшем?

1 Ответ

0 голосов
/ 17 марта 2012

Му было правильно, вы не можете скомпилировать файл на Snow Leopard и ожидать, что он будет работать на Heroku, который использует Ubuntu 10.04.

В итоге я скачал VMWare Fusion и образ Ubuntu и скомпилировал там код, который затем смог выполнить на Heroku.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...