Пользовательские бинарники на Heroku

Я пытаюсь заставить библиотеку lp_solve работать на Heroku, но не могу заставить ее работать быть признанным. Я испробовал все ресурсы, которые мне удалось найти, включая работу с vulcan, добавив его в /bin моего проекта, добавив его в /vendor и изменив PATH, и я даже зашел так далеко, что создал buildpack, который я использую с buildpack-multi, но в каждом случае результаты одинаковы: No such file or directory. Даже когда я врезаюсь в свой экземпляр и пытаюсь выполнить файл напрямую, это дает мне ту же ошибку. Я сделал его исполняемым. Что мне не хватает?


person lobati    schedule 03.10.2013    source источник


Ответы (2)


Несмотря на неописуемое сообщение об ошибке, оказалось, что это проблема архитектуры. Это был 32-битный двоичный файл, который, как я думал, может работать нормально, несмотря на это, поскольку у меня не было проблем с его запуском на моей локальной машине. Мне пришлось перекомпилировать его из исходников на Heroku с помощью Anvil: https://github.com/ddollar/anvil

Ребята из списка рассылки Heroku очень помогли решить проблему.

person lobati    schedule 12.10.2013

Вы должны иметь возможность просто включить двоичный файл, предполагая, что он был скомпилирован для правильной архитектуры. Когда вы запускаете консоль heroku, как вы пытаетесь выполнить файл (какую полную команду вы выполняете)? Вы заставляете его искать файл, которого нет?

person Jeremy Green    schedule 12.10.2013
comment
Файл был там. Я запустил heroku run bash и вкладку завершил bin/lp_solve. Одна и та же ошибка несмотря ни на что. Основываясь на некоторых советах парней из списка рассылки Heroku, я запустил ldd и file и обнаружил, что он просто не находит нужных заголовков. - person lobati; 12.10.2013