Я пытаюсь собрать пользовательский buildpack с NodeJS и модуль CouchBase/библиотекамиHeroku NodeJS + CouchBase Пользовательского Buildpack
Я получил по мере использования Vulcan строить libcouchbase и libvbucket и получить buildpack к извлекать и распаковывать файлы tgz для обоих.
Все выглядит нормально, но я получаю ошибки при НОМ пытается установить модуль couchbase:
я получаю кучу ошибок, но эта строка:
»../src/couchbase_impl.h : 52: 36: warning: libcouchbase/couchbase.h: Нет такого файла или каталога «
приводит меня к мысли, что он не может найти библиотеки libcouchbase (что возможно, поскольку они не в обычном месте) ,
Я попытался добавить правильный путь, используя CPPFLAGS = "- I/app/vendor/couchbase/include/libcouchbase" в обоих конфигурационных Vars и только экспортируя это как часть фазы компиляции, но все равно не повезло ,
Вот суть с Heroku развернуть выход и/отпускание buildpack файлы компиляции: https://gist.github.com/ahamidi/5620503
Любая помощь будет принята с благодарностью.
Спасибо,
Али
[Update 1]
Я сделал некоторый прогресс, и теперь я могу получить пулю, чтобы компилировать при развертывании Heroku.
Ключ определял переменные ENV, которые ищет CouchNode при добавлении настраиваемых каталогов.
В этом случае переменными Env были EXTRA_CPPFLAGS и EXTRA_LDFLAGS.
Так я обновил файл компиляции, чтобы включить следующее:
export EXTRA_CPPFLAGS="-I$BUILD_DIR/vendor/couchbase/include"
export EXTRA_LDFLAGS="-L$BUILD_DIR/vendor/couchbase/lib -Wl,-rpath,$BUILD_DIR/vendor/couchbase/lib"
Слизняк компилирует и приложение развертывается, но теперь я получаю другую ошибку в журналах:
Error: libcouchbase.so.2: cannot open shared object file: No such file or directory
Так похоже, что Node не может видеть каталог библиотек libcouchbase.
Поскольку libcouchbase 2.0 вам не нужен внешний libvbucket, он был добавлен в libcouchbase и ссылки статически – avsej
Ваш скрипт использует некоторые настраиваемые tarballs, почему бы не использовать определенную версию с официального сайта (можно найти по адресу http: // couchbase. ком/разработки/с)? – avsej
У меня создалось впечатление, что «предпочтительным» подходом было создание двоичных файлов, использующих целевые среды (в данном случае фактически построенные на процессоре Heroku Dyno). –