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

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

sudo erl -pa ebin

а затем по подсказке:

test_jsonrpc:start_httpd().

вернулся

ok

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

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

~/.erlang

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


person David    schedule 06.08.2009    source источник
comment
Гордон, я ценю ваш ответ ниже (проголосовал за него). К сожалению, я пробовал несколько методов, включая файл .erlang и применение пути к -pa в файле make. Я предполагаю, что мой вопрос немного более специфичен для rfc4627 и rabbitmq-http2.   -  person David    schedule 09.08.2009
comment
Добавьте больше информации о путях к каталогам с лучами и о том, как вы добавляете пути к серверу кода. Особенно, где у вас лучи для библиотеки rfc4627?   -  person Christian    schedule 13.08.2009
comment
Кристиан, на самом деле, у меня все это работает, я собирался ответить на это, объяснив кое-что из того, что я сделал. Я, вероятно, сделаю это позже на этой неделе.   -  person David    schedule 18.08.2009


Ответы (1)


модуль кода позволяет управлять путем в приложении.

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

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

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

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

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

Поведение флагов erl описано здесь.

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

person Gordon Guthrie    schedule 06.08.2009
comment
как указано выше, мне не нужно было этого делать, но это хороший ответ! - person David; 10.11.2010
comment
Каков формат файла .erlang? Или еще лучше, где я могу найти документацию об этом - person Masse; 25.08.2011
comment
Он принимает термины erlang, которые оцениваются так, как если бы они были введены в оболочку. См. здесь Раздел 1.7.1 erlang.org/documentation/doc- 5.2/doc/getting_started/ - person Gordon Guthrie; 20.12.2011