application startup
Ulf Wiger (AL/EAB)
ulf.wiger@REDACTED
Mon Aug 22 15:15:05 CEST 2005
> -----Original Message-----
> From: owner-erlang-questions@REDACTED
> [mailto:owner-erlang-questions@REDACTED]On Behalf Of Serge Aleynikov
> Sent: den 22 augusti 2005 13:39
> To: Ulf Wiger
> Cc: Erlang Questions
> Subject: Re: application startup
>
>
> Uffe,
>
> Over the weekend, I briefly tried to experiment with the
> builder app by
> taking your 'dist' application from the "How-to" section of
> trapexit.org, and trying to creage a distibution package. I had very
> little luck on getting a clean built. On the other hand the build
> process using target_system.erl worked well. It must be that some
> options weren't set correctly, but the errors are not very
> descriptive.
>
> The root of the 'dist' app is /home/serge/tmp/distr-erl/.
> The release
> file looks like this (note I added mnesia app because I
> wanted that to
> be included in the build):
>
> {release, {"Example","1.0"}, {erts,"5.4.8"},
> [{kernel,"2.10.9"},
> {stdlib,"1.13.8"},
> {sasl, "2.0.1"},
> {mnesia, "4.2.2", load},
> {dist,"1.0"}]}.
>
> 1> builder:go([{app_dir,
> "/home/serge/tmp/distr-erl/lib/dist-1.0"},{report, verbose},{out_dir,
> "/home/serge/tmp/distr-erl/releases/1.0"},{path,
> ["/usr/local/lib/erlang/lib/*/ebin","/home/serge/tmp/distr-erl
> /lib/*/ebin"]},{make_app,false},{make_rel,false}]).
> pushed 1st report level verbose(2)
> redefined report level verbose(2)
>
> =ERROR REPORT==== 22-Aug-2005::07:35:10 ===
> Error in process <0.30.0> with exit value:
> {{case_clause,[{"2.10.9",[]}]},[{builder,later_vsn,2},{builder
> ,maybe_save_app,6},{builder,expand_path,4},{builder,expand_pat
> h,4},{builder,search_apps,4},{builder,'-go/1-fun-14-',1},{list
> s,foldl,3},{builder,go,1}]}
>
> ** exited: {{case_clause,[{"2.10.9",[]}]},
> [{builder,later_vsn,2},
> {builder,maybe_save_app,6},
> {builder,expand_path,4},
> {builder,expand_path,4},
> {builder,search_apps,4},
> {builder,'-go/1-fun-14-',1},
> {lists,foldl,3},
> {builder,go,1}]} **
>
> Then I created an example.rel.src file and tried again:
>
> {release, {"Example","1.0"},
> [kernel, stdlib, sasl, mnesia, dist]}.
>
> 2> builder:go([{app_dir,
> "/home/serge/tmp/distr-erl/lib/dist-1.0"},{report, verbose},{out_dir,
> "/home/serge/tmp/distr-erl/releases/1.0"},{path,
> ["/usr/local/lib/erlang/lib/*/ebin","/home/serge/tmp/distr-erl
> /lib/*/ebin"]},{make_app,false},{make_rel,true},{rel_file,
> "/home/serge/tmp/distr-erl/releases/1.0/example.rel.src"}]).
> pushed 1st report level verbose(2)
> redefined report level verbose(2)
>
> =ERROR REPORT==== 21-Aug-2005::08:35:46 ===
> Error in process <0.91.0> with exit value:
> {undef,[{dict,store,[make_rel,false]},{lists,foldl,3},{builder
,post_process_options,1},{lists,foldl,3},{builder,go,1},{erl_eval,do_apply,5},> {shell,exprs,6},{shell,eval_loop,3}]}
>
> ** exited: {undef,[{dict,store,[make_rel,false]},
> {lists,foldl,3},
> {builder,post_process_options,1},
> {lists,foldl,3},
> {builder,go,1},
> {erl_eval,do_apply,5},
> {shell,exprs,6},
> {shell,eval_loop,3}]} **
> 11> builder:go([{app_dir,
> "/home/serge/tmp/distr-erl/lib/dist-1.0"},{report, verbose},{out_dir,
> "/home/serge/tmp/distr-erl/releases/1.0"},{path,
> ["/usr/local/lib/erlang/lib/*/ebin","/home/serge/tmp/distr-erl
> /lib/*/ebin"]},{make_app,false},{make_rel,true},{rel_file,
> "/home/serge/tmp/distr-erl/releases/1.0/example.rel.src"}]).
>
> At this point I gave up because I had to take my daugter to a
> swimming pool.
>
> My humble suggestion would be that instead of replying to my
> email you
> would expand the help (or write a small tutorial) on how to
> make use of
> the 'builder' tool.
>
> > ... To achieve the ease of use part, a tutorial
> > is badly needed. It's not that obvious how to get
> > started with it.
>
> Regards,
>
> Serge
>
> Ulf Wiger wrote:
> > Den 2005-08-19 19:24:45 skrev Serge Aleynikov <serge@REDACTED>:
> >
> >> Uffe,
> >>
> >> Is the 'builder' contrib supposed to be a complete replacement of
> >> target_system.erl documented below?
> >>
> >>
http://erlang.se/doc/doc-5.4.8/doc/system_principles/part_frame.html
>
>
> Builder tries to conform to the OTP system principles
> as much as possible, so it's more of an attempt to
> automate the process -- not replace it.
>
> Builder essentially tries to combine the following ideas:
>
> - automate some of the error-prone steps, like
> getting the version numbers and the module list right.
>
> - explore the idea of incrementally building the
> system: for each application, you can generate boot
> scripts that let you start a full system up to and
> including the application you're working on. Once
> you get to the final application, you are building
> the whole system.
>
> - if you usually want to build your scripts using the
> latest available applications, this should not be
> tedious and difficult. Builder will find out which
> are the latest versions, as long as it gets the
> application names and search paths. If you want to
> be specific about versions, you can do that too.
>
> - try to achieve modularity in that once you've
> specified build options for one application, they
> can be reused (or optionally overridden) when adding
> another. To some extent, OTP does this already, but
> builder adds support for handling environment
> variables this way.
>
> Essentially, ease of use for the beginner, and speed
> and convenience for the power user were the modest
> goals. To achieve the ease of use part, a tutorial
> is badly needed. It's not that obvious how to get
> started with it.
>
> /Uffe
More information about the erlang-questions
mailing list