[erlang-questions] Erlang application packaging
Joseph Wayne Norton
Mon Sep 24 03:45:36 CEST 2012
I have been experimenting with a recipe to build, to package, to install and to boot an Erlang system. This recipe is based on Basho's rebar tool and Ulf Wiger's setup tool. I made a few modifications to the setup tool and to erts's systool make library that allow one to package, to install, and to boot easily from a single escript archive.
Keep in mind this is a work in progress. If you are interested, please try the recipe out. If you have any questions, please contact me directly via e-mail.
= Setup Package
This repository contains a prototype recipe for building an Erlang package
and installation using rebar, setup, and make. Gproc is the
Erlang application choosen for this recipe.
The recipe below builds, packages, installs, and boots an interactive Erlang
system. To understand this recipe, please check the following items:
- Makefile - check compile, package, and boot targets
- rebar.config - rebar's configuration file
- rel/gprocpkg.config - setup_gen's configuration file used by systool make
- src/setup_pkg.erl - escript wrapper over setup_gen
== Quick Start Recipe
To download, build, and boot the gproc package and installation in one
shot, please follow this recipe:
$ mkdir working-directory-name
$ cd working-directory-name
$ git clone https://github.com/norton/setup-pkg.git setup-pkg
$ cd setup-pkg
$ ./rebar get-deps
$ make clean
$ make compile
$ make boot
On Sep 20, 2012, at 10:52 PM, Jean Parpaillon <jean.parpaillon@REDACTED> wrote:
> Hi all,
> I'm Jean Parpaillon, new erlang enthusiast and (soon) programmer. On 7
> past years, I've workedon distributed systems, specially in HPC and
> cloud computing. I'm trying to develop an XMPP agent for system
> management, written in Erlang. This is the introduction, now the
> question :)
> What is your preferred packaging/deployment system for erlang ? I have a
> code running, from erlang shell, and want it to become a real world
> application the user can install from an archive and launch from its
> shell, eventually with some parameters.
> I've read about systools, and how to generated .app, .appup, .rel, .boot
> and so on. This looks fine but a lot to do by hand. When it comes to
> update a file, and release the whole stuff, one have to modify plenty of
> others. Or am I wrong ?
> I've looked to existing applications or 'helloworld's: some of them
> using autotools (ejabberd, ...), a lot of others using rebar, sometime a
> little a bit of both, iirc.
> rebar has a lot of magic, which makes debugging hard.
> autotools is not well designed for erlang, but putting some existing m4
> files here and there seems to fit. At least, I know autotools well. I
> know how can I generate .app, .rel and so on with autotools, but I don't
> know what to put in it :/
> At the end, for launching the application, I've seen many projects not
> using .boot files, but a shell script with tons of arguments to erl...
> I'm a little bit confused :( Any help ?
> Best regards,
> Jean Parpaillon
> Open Source Consultant
> Phone: +33 6 30 10 92 86
> im: jean.parpaillon@REDACTED
> skype: jean.parpaillon
> linkedin: http://www.linkedin.com/in/jeanparpaillon/en
> erlang-questions mailing list
More information about the erlang-questions