Существует покерная библиотека с открытым исходным кодом под названием 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?
Есть идеи, что может быть причиной этого или как я могу устранить неисправность в дальнейшем?