Добавить путь к пути поиска Erlang?

Недавно я установил Erlang RFC4627 (JSON-RPC) с пакетом debian. Я запустил тестовый сервер, используя:

sudo erl -pa ebin

а затем в командной строке:

test_jsonrpc:start_httpd().

вернулся

ok

Я тестировал с http://: 5671/и получил сообщения об успешном завершении.

Однако, когда я пытаюсь запустить rabbitmq-http2, я получаю ошибки, которые, как говорит readme, вызваны кодом rfc4627, который не находится на пути поиска erlang. Как поместить его на путь. Я увидел что-то в блоге Dave Thomas, который предложил поместить путь в файл:

~/.erlang

Это, похоже, не работало для меня (возможно, я сделал это неправильно?).

Ответ 1

Модуль code - это то, как вы манипулируете путем в приложении.

Флаги -pa, которые вы использовали при запуске оболочки Erlang, действительно ссылаются на функцию в этом модуле:

add_patha(Dir) -> true | {error, What}

Вы правы в файле .erlang в своем домашнем каталоге - он запускается во время запуска оболочки, и вы можете добавить удобные пути.

Для приложения вы можете запустить оболочку с командным файлом, который вызывает что-то вроде этого:

erl -pa ./ebin ../../lib/some/path/ebin

Поведение правил erl описывается здесь.

Для более сложного управления путями вам нужно ознакомиться с тем, как выполняется Управление выпуском OTP (но я подозреваю, что для вас это время. пока).