Здравствуйте, Аноним, Вы писали:
А>Доброго времени суток! А>Не могу понять в чем дело. А>Есть дескриптор приложения — все как обычно. Добавил А>{applications, [kernel, stdlib, exmpp]}
А>запускаю свое приложение А>
А>application:stat(my_app_name).
А>
А>получаю {error,{not_started,exmpp}}
А>Хотя если запускать exmpp:start() или application:start(exmpp) все хорошо
А>та же самая проблема возникает и со mnesia
Если хочется нормальный старт (и апгрейд) приложений, то лучше разобраться с релизами (вариант на русском), удобней и практичней всего использовать rebar для механизации этого дела.
Здравствуйте, Аноним, Вы писали:
А>запускаю свое приложение А>
А>application:stat(my_app_name).
А>
А>получаю {error,{not_started,exmpp}}
А>Хотя если запускать exmpp:start() или application:start(exmpp) все хорошо
А>та же самая проблема возникает и со mnesia
Все правильно. Если вы делаете релиз, то там получается бут скрипт, который и запустит все ваши зависимости перед приложением.
Если вы запускаете ручками, то и зависимости вам придется стартовать тоже ручками.
Здравствуйте, Аноним, Вы писали:
А>запускаю свое приложение А>application:stat(my_app_name).
start?
А>получаю {error,{not_started,exmpp}}
Согласно ману application(3), application:start() проверяет наличие приложений, но не запускает их:
The application controller checks the value of the application
specification key applications , to ensure that all applications
that should be started before this application are running. If
not, {error,{not_started,App}} is returned, where App is the
name of the missing application.
Так что их таки надо запустить самому. Может, в app-модуле в его start(), может, через сборку релиза и запуск релиза целиком.
А>Хотя если запускать exmpp:start() или application:start(exmpp) все хорошо
А>та же самая проблема возникает и со mnesia
Ну так та же ситуация.
The God is real, unless declared integer.
Re[2]: [Erlang]Дескриптор приложения и зависимости
От:
Аноним
Дата:
13.10.11 05:59
Оценка:
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, Аноним, Вы писали:
А>>Доброго времени суток! А>>Не могу понять в чем дело. А>>Есть дескриптор приложения — все как обычно. Добавил А>>{applications, [kernel, stdlib, exmpp]}
А>>запускаю свое приложение А>>
А>>application:stat(my_app_name).
А>>
А>>получаю {error,{not_started,exmpp}}
А>>Хотя если запускать exmpp:start() или application:start(exmpp) все хорошо
А>>та же самая проблема возникает и со mnesia
К>Если хочется нормальный старт (и апгрейд) приложений, то лучше разобраться с релизами (вариант на русском), удобней и практичней всего использовать rebar для механизации этого дела.
это все круто! но проект еще на глубокой стадии разработки — и постоянно собирать релизы нет никакого желания.
у кого-нибудь есть еще идеи?
Re[3]: [Erlang]Дескриптор приложения и зависимости
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Аноним, Вы писали:
А>>запускаю свое приложение А>>application:stat(my_app_name).
N>start?
А>>получаю {error,{not_started,exmpp}}
N>Согласно ману application(3), application:start() проверяет наличие приложений, но не запускает их:
... N>Так что их таки надо запустить самому. Может, в app-модуле в его start(), может, через сборку релиза и запуск релиза целиком.
Я обычно сочетаю:
1) указываю в зависимостях и в релизах приложения запускает окружение
2) а для отладочных и тестировочных запусков:
ensure_started(App) ->
case application:start(App) of
ok ->
ok;
{error, {already_started, App}} ->
ok
end.
start(_StartType, _StartArgs) ->
ok = ensure_started(some_other_app)
....