[erlang-questions] erlang package manager

Tobias Schlager Tobias.Schlager@REDACTED
Mon Dec 19 09:18:39 CET 2011


if your looking for package management and you're already familiar with apache maven the maven-erlang-plugin could be useful. Especially if you already have a continuous integration infrastructure you want to reuse.

* http://erlang-plugin.sourceforge.net/


Von: erlang-questions-bounces@REDACTED [erlang-questions-bounces@REDACTED]" im Auftrag von "Tim Watson [watson.timothy@REDACTED]

Gesendet: Montag, 19. Dezember 2011 02:44

Bis: eigenfunction

Cc: erlang-questions@REDACTED

Betreff: Re: [erlang-questions] erlang package manager

On 18 December 2011 18:56, eigenfunction 
<emeka_1978@REDACTED> wrote:

Hi everybody,

I have been doing some erlang programming recently and have always

generated the release manually and never really used neither rebar nor

sinan. It seems like most people in the community have settled for

rebar. Before i spend the next couple of days playing with those

tools, can someone pls give me a quick recap on the differences

between both?

In terms of building your code, there isn't much difference really. In terms of package management, there's a big difference. The Erlware tool chain relies on a custom repository that holds binary (i.e., pre-built) artefacts and fetches the right ones
 for your system (based on OTP/erts version, OS, etc) - this is a good thing IMHO as I like just grabbing a thing once and not having to worry about the build steps, incompatibilities in build config, etc. The down side of the Erlware stack is that it hasn't
 been heavily adopted, so not that many of the libs/apps you want are available through the package manager. There are ways around this, but it's put me off to date.

Now rebar on the other hand, doesn't do *package management* as such. It has a facility for fetching dependencies from the internet using version control tools (git, mercurial, subversion, bazaar) and puts these into a local build folder. All the commands
 you run at the top level basically recurse into the dependencies folder(s), so running `rebar get-deps compile` will fetch the stuff the build config needs and compile everything.

There are other tools out there that do package management of sorts, agner probably being the most heavily adopted, but also there is sutro and epm. Of these, only agner integrates with rebar.

There appears to be an effort by the erlware guys to produce another package manager that supports rebar and sinan based builds - they have repos on github and I'm sure will comment on this.

There is also meant to be a successor to cean coming out soon, which will probably be quite similar in spirit (support numerous build tools and/or dependency management strategies) but we heard about it on the list some time ago and it hasn't materialised
 yet - see http://erlang.org/pipermail/erlang-questions/2011-June/059195.html. I do hope that the
 major players will collaborate if only to standardise their configuration handling, as it'd be nice to *write once, install using anything* as it were.

I have been considering hacking together an alternative dependency manager for rebar, but I'm waiting to see if cean 2.0 comes out soon and how well it is adopted (or whether it will fetch stuff from alternative locations besides the main artefact repository).

Hope that's a useful start - I'm sure lots of others will pipe up about this as it's a popular topic.

More information about the erlang-questions mailing list