Packaging Erlang applications (was Re: Longstanding issues: structs & standalone Erlang
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
- 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
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 !
More information about the erlang-questions