Включая клиентскую библиотеку Erlang от Riak in Nitrogen - PullRequest
3 голосов
/ 19 ноября 2010

Я только начинаю работать с веб-приложением, использующим азот, и все идет хорошо. Но я также хочу, чтобы мое приложение взаимодействовало с установленным мной riak db, и у меня возникли некоторые проблемы.

Я не совсем понимаю, как «включить» клиентский интерфейс erlang, чтобы мой код в азоте мог получить к нему доступ.

(https://wiki.basho.com/display/RIAK/Erlang+Client+PBC)

Я новичок в эрланге и азоте, но в целом для эрланга я имею в виду, как включить другие библиотеки в качестве справочных? Должен ли я просто взять скомпилированные файлы лучей и выбросить их куда-нибудь, а затем добавить строку -include вверху моего кода erlang? если да, то куда мне выкидывать эти файлы на азот (думаю, он имеет отдельный экземпляр узла erlang)

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

Если вы запускаете все на одном узле, просто назовите то, что вам нужно.Если узел собран с правилами обработки релизов Erlang / OPT, это означает, что все необходимые библиотеки загружены в ВМ.

-include просто используется для включения заголовочных файлов, например, с определениями записей или макросами.

Все это должно быть прозрачным для вас, потому что rebar (система сборки от basho) справляется с этим очень хорошо.

Чтобы использовать некоторые библиотеки, убедитесь, что они находятся в каталоге deps в результате правильной арматурыconfig (раздел deps).Следующим шагом является изменение файла systools.config в rel / files, который настраивает узел (подбирает приложения из deps / для включения в работающую систему).

И это все.

0 голосов
/ 21 декабря 2014

Это простая процедура:

  1. Убедитесь, что используете исправленную версию Baslan Erlang. Инструкции для этого можно найти на Установка Basho Erlang / OTP .

  2. Затем установите уменьшенную версию, следуя инструкциям на Создание проекта Nitrogen . Пожалуйста, используйте версии "Slim-Release", чтобы вы строили свой проект, используя Erlang Basho

  3. Вытащить клиента riak-erlang из github. Для получения дополнительной информации Проверьте здесь или просто сделайте это из каталога ../$MYPROJECT/lib, где $ MYPROJECT - это название вашего азотного проекта. git clone git://github.com/basho/riak-erlang-client.git. Это будет включать riak-erlang-client в каталоге lib

  4. Отредактируйте файл rebar.config, выполнив это nano ../$MYPROJECT/rebar.config, чтобы включить зависимости riak-erlang-client. ** Ищите riakc dep в блоке кода ниже **, в этом проекте я использовал make slim_cowboy

{deps, [

  {cowboy,        ".*",   {git, "git://github.com/ninenines/cowboy",         {tag,     "1.0.0"}}},
%% Uncomment the following lines and comment the bottom lines with specific
%% tags to always pull the latest versions
{simple_bridge, ".*",   {git, "git://github.com/nitrogen/simple_bridge",{branch, master}}},
{nprocreg,      ".*",   {git, "git://github.com/nitrogen/nprocreg",     {branch, master}}},
{nitrogen_core, ".*",   {git, "git://github.com/nitrogen/nitrogen_core",{branch, master}}},

%% The riak-erlang-client dep starts
{riakc,         "1.4.1",    {git, "git://github.com/basho/riak-erlang-client", {tag, "1.4.1"}}},
%% The riak-erlang-client dep ends

{sync,          ".*",   {git, "git://github.com/rustyio/sync",          {branch, master}}}

%% Get specific tagged version
%{simple_bridge, ".*",   {git, "git://github.com/nitrogen/simple_bridge",{tag, "v2.0.0-beta5"}}},
%{nprocreg,      ".*",   {git, "git://github.com/nitrogen/nprocreg",     {tag, "v0.2.1"}}},
%{nitrogen_core, ".*",   {git, "git://github.com/nitrogen/nitrogen_core",{tag, "v2.3.0-beta6"}}},
%{sync,          ".*",   {git, "git://github.com/rustyio/sync",          {tag, "4dbe32bb4"}}}

]}.

  1. От ../$MYPROJECT перекомпилируйте ваш проект, используя make all.

  2. В конце этого шага просто начните азот на ./bin/nitrogen console. Попробуйте подключиться к одному из ваших узлов riak с помощью {ok, Pid} = riakc_pb_socket:start_link("127.0.0.1", <PORT>).. Тогда вы готовы к работе.

...