Сторонние библиотеки по героку - PullRequest
0 голосов
/ 26 марта 2019

Я добавил библиотеку GNU 'wdiff' в свое приложение Ruby on Rails через https://github.com/echan00/wdiff и добавил исполняемый файл в мой каталог /vendor/usr/bin.

Через heroku run bash Я могу выполнить библиотеку wdiff на ~/vendor/usr/bin.

Я добавил /app/vendor/usr/bin в качестве переменной среды LD_LIBRARY_PATH, но мое приложение Ruby on Rails не может найти wdiff.

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Я добавил /app/vendor/usr/bin в качестве переменной среды LD_LIBRARY_PATH, но мое приложение Ruby on Rails не может найти wdiff

LD_LIBRARY_PATH сообщает ОС, где искать библиотеки, которые будут динамически связаны во время выполнения . Например, если вы запускаете приложение, которое требует OpenSSL, но не включает в себя сам OpenSSL, операционная система может найти его через LD_LIBRARY_PATH.

Каталоги, в которых ОС должна искать двоичные файлы перечислены в переменной PATH. Попробуйте использовать это вместо этого.

Обратите внимание, что было бы очень необычно просто установить это значение в одно значение. Более распространенный подход заключается в добавлении или добавлении вашего пользовательского местоположения к любому значению, которое PATH уже имеет, например, через что-то вроде

export PATH="$PATH:/app/vendor/usr/bin"

В случае, если существует несколько двоичных файлов с одним и тем же именем, найденные ранее по пути имеют приоритет над найденными позже.

Наконец, что-то специфичное для Heroku:

и добавил исполняемый файл в мою директорию /vendor/usr/bin

Как ты это сделал? Если бинарный файл является частью вашего репозитория, с вами все будет в порядке, но если вы добавили его вручную (например, с помощью heroku run bash), вы обнаружите, что он исчезает через некоторое время. Это связано с эфемерной файловой системой Heroku .

Вам нужно будет включить wdiff во время сборки. Один хороший способ сделать это - добавить второй сборочный пакет , такой как heroku-buildpack-apt, а затем установить обычный пакет wdiff через Aptfile.

.
0 голосов
/ 26 марта 2019

В итоге я жестко запрограммировал свой драгоценный камень rails, чтобы найти исполняемый файл в каталоге, а не проходить через ПУТЬ БИБЛИОТЕКИ

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