Packaging Erlang applications (was Re: Longstanding issues: structs & standalone Erlang

Mickael Remond <>
Tue Feb 21 14:57:42 CET 2006


* Bjorn Gustavsson <> [2006-02-21 11:57:38 +0100]:

> I had an idea to write a generic tool that would help packaging an Erlang
> application in the same way as Wings does, but I never seems to
> find the time to finish it.

I am jumping into this thread to announce several tools that we have
develop with Christophe Romain and that are being tested. Here is what
we have and will publish during the next week-end.

- REPOS is the basis of our packaging method. I feel this tools has been
  highly underestimated as a medium to promote Erlang. Everytime I
  have made an Erlang demo based on the multiplaform CDROM REPOS, the
  audience was catch with a "wowww, that's cool" smile on their face.
  I used it to demonstrate ejabberd, BTT, Yaws, Tsung (ex-tsunami), etc.
  This is a very powerful tool :-) 
  The last version (1.4-b1) is currently being tested, so not yet
  heavily announced, but you can download it already from its future
  home page:
  https://support.process-one.net/doc/display/CONTRIBS/Erlang+packaging 

- We have developed some script to help us generate, maintain and
  upgrade the Erlang REPOS environment. A lot more can be done in this
  area, but this toolset is already working very well for us.

- Erlang Runtime (erlrt)
  We have developed a toolset to build single file package of Erlang
  applications. This approach use the content of the REPOS structure to
  make it possible to distribute an application as a single shell script
  and including dependancies coming from REPOS.
  This is currently working on MacOSX and Linux and we are looking for
  help to make it possible on Windows.

- We are packaging Erlang applications inside graphical installers based
  on the content of the REPOS structure. A good example is the ejabberd
  Linux graphical installer but we are planning to do the same on Linux,
  Windows and MacOSX. 

- We are planning and designing a solution to make it possible to
  upgrade a REPOS structure by only downloading the differences from a
  central repository.

Overall, our approach is the following: Applications becomes easy to
package: You just have to integrate your application in the REPOS tree
and select the relevant dependencies. You can thus use several
distribution methods to distribute it to your users / customers.

This roadmap is now in good shape. REPOS is already there for more than
one year and a half and heavily tested. Erlrt is working and will be
published soon. We are using graphical installers to distribute
production ready software.

It seems that this approach is working well for us at least.
Comments and help are welcome !

-- 
Mickaël Rémond



More information about the erlang-questions mailing list