Добавить путь к пути поиска Erlang?
Вопрос
Недавно я установил Erlang RFC4627 (JSON-RPC) вместе с пакетом debian.Я запустил тестовый сервер, используя:
sudo erl -pa ebin
а затем по подсказке:
test_jsonrpc:start_httpd().
возвращенный
ok
Я протестировал с помощью http://:5671 / и получил сообщения об успешном завершении.
Однако, когда я пытаюсь запустить rabbitmq-http2, я получаю ошибки, которые, по словам readme, вызваны тем, что код rfc4627 отсутствует в пути поиска erlang.Как мне поместить это на путь?Я видел кое-что в блоге Дейва Томаса, в котором предлагалось указать путь к файлу:
~/.erlang
Похоже, у меня это не сработало (может быть, я сделал это неправильно?).
Решение
В кодовый модуль это то, как вы манипулируете путем внутри приложения.
Флаги -pa , которые вы использовали при запуске оболочки Erlang , на самом деле ссылаются на функцию в этом модуле:
add_patha(Dir) -> true | {error, What}
Вы правы насчет файла .erlang в вашем домашнем каталоге - он запускается во время запуска командной оболочки, и вы можете добавить удобные пути.
Для приложения вы можете запустить оболочку с командным файлом, который вызывает что-то вроде этого:
erl -pa ./ebin ../../lib/some/path/ebin
Описано поведение флагов erl здесь.
Для более сложного управления путями вам необходимо ознакомиться с тем, как Управление выпуском OTP готово (но я подозреваю, что у вас еще есть время для этого).