Yaws как зависимость от арматуры

Как я могу установить Yaws как зависимость от Rebar в моем приложении Erlang?

Спасибо,

ЛРП


person Lloyd R. Prentice    schedule 09.08.2012    source источник


Ответы (1)


Во-первых, убедитесь, что вы используете последнюю версию rebar, скажем, от апреля 2012 года или более поздней версии (rebar commit dc472b или более поздней версии), поскольку в начале 2012 года в нее были внесены изменения специально для поддержки таких проектов, как Yaws.

Чтобы использовать Yaws в качестве зависимости, укажите в файле rebar.config следующее:

{deps, [{yaws, ".*", {git, "git://github.com/klacke/yaws", {branch, "master"}}}]}.

Вы можете заменить часть {branch, "master"} определенным тегом Yaws, если хотите:

{deps, [{yaws, ".*", {git, "git://github.com/klacke/yaws", {tag, "yaws-1.94"}}}]}.

Обратите внимание, однако, что я не рекомендую использовать версию ниже, чем Yaws 1.94, из-за изменений, внесенных в Yaws специально для поддержки сборки rebar.

То, как вы на самом деле запускаете Yaws, зависит от того, как ваше приложение использует его. Использование его во встраиваемом стиле, вероятно, лучше всего подходит для приложений, построенных из арматуры, поскольку таким образом вы не иметь никаких зависимостей от yaws.conf файлов. Но если вы хотите запустить Yaws как автономный веб-сервер, вы можете создать свои зависимости и приложение, а затем запустите Yaws в интерактивном режиме следующим образом:

rebar get-deps compile
./deps/yaws/bin/yaws -i -pa ebin

При этом используется файл yaws.conf по умолчанию, найденный в ./deps/yaws/etc/yaws/yaws.conf, который вы можете изменить по мере необходимости. Запуск Yaws таким образом не будет включать каталоги ebin любых других зависимостей арматуры вашего приложения в путь загрузки, но вы можете либо добавить необходимые пути, используя дополнительные параметры -pa в Yaws, либо с помощью указав их в файле yaws.conf.

person Steve Vinoski    schedule 09.08.2012
comment
Будучи в последнее время избалованным автоматикой арматуры, я хочу использовать встроенные yaws, поэтому я добавил требование yaws-1.99 в конфигурацию арматуры. Очень много странных нареканий, например, дублируется файл .src. Кроме того, нужно ли мне делать дальнейшую магию внутри каталога deps/yaws, например, получать жалобы, такие как Can't exec libtoolize: Нет такого файла или каталога в строке /usr/bin/autoreconf 196. - person mattias; 18.01.2015
comment
@mattias: вы пытаетесь запустить make для сборки Yaws? Yaws поддерживает как автоинструменты, так и арматуру, но для арматуры нет цели make. Вам нужно запустить rebar compile напрямую, чтобы построить Yaws с арматурой. - person Steve Vinoski; 18.01.2015
comment
Моей первоначальной первой попыткой было просто добавить ссылку на yaws в файл rebar.config и запустить rebar get-deps. Это не сработало для меня. Потом пробовал другие способы. Это должно было быть так просто? - person mattias; 18.01.2015
comment
Да, это должно быть так просто. Чтобы быть уверенным, я только что настроил простое приложение с Yaws в качестве отладчика, запустил rebar get-deps compile, и оно скачало yaws-1.99 и построило его без проблем. Запуск rebar --version показывает rebar 2.5.1 R14B04 20141216_212600 git 2.5.1-57-gb796065. Это специально создано из версии git b796065 от начала декабря 2014 года, потому что в настоящее время (по состоянию на 18 января 2015 года) более новые версии не работают с Yaws. - person Steve Vinoski; 18.01.2015
comment
Ок, попробую с этой версией арматуры, пробовал со старой 2.0.?? версия и арматура 2.5.1 17 20150118_115522 git 2.5.1-102-g25aca7e . Приятно слышать, что это должно быть так просто. - person mattias; 18.01.2015
comment
Да, именно с этой версией арматуры я могу скомпилировать yaws 1.99. - person mattias; 02.02.2015
comment
Большой! Также обратите внимание, что мастер rebar на github по состоянию на коммит 930d2c7 (от 25 января 2015 г.) исправил ошибку, о которой я упоминал в своем предыдущем комментарии. - person Steve Vinoski; 02.02.2015