[erlang-questions] Erlang Package Manager

Loïc Hoguin essen@REDACTED
Wed Dec 31 12:02:45 CET 2014

Hey there, welcome!

Everything I am writing here is not Erlang/OTP team's views. They have 
not said anything after launching the debate and nobody knows if they 
find Nix a good fit or not.

The biggest concern about using Nix from the discussions were Windows 
support. Erlang is supported on a number of OS, the three big ones being 
Linux/Windows/OSX. Patches to Erlang for functionality that do not exist 
on Windows tend to be rejected, so it is assumed the package manager 
will need to work on Windows too.

Potential license issues also came up, most of everything in Erlang's 
world being BSD/MIT/ISC/Apache2. Again, only speculation there.

Currently Erlang has no package manager but does come with dependency 
facilities (third party build tools do, anyway, but everyone uses one of 
those, be it erlang.mk, mad, rebar or another). Each project has a list 
of "deps" that it fetches (from git or other methods), compiles and then 
use when building the Erlang system (Erlang has "releases" which are a 
sort of packaging on steroids for Erlang systems). So people do not 
install anything, they just have different dependencies per project. 
Those dependencies are downloaded in a subfolder of the project.

Also note that the "releases" come with the Erlang VM (BEAM) but also 
all applications needed to run it, so even in production there is little 
need to install anything (the most I ever installed to run a "release" 
was openssl). You just push the "release" to production and you're good.

Personally I love this system and even if a package manager appears I 
will continue keeping things this way (with a manager's help or not). 
With erlang.mk creating a project is a matter of copying one file, 
running one command, editing Makefile, then typing make and you got your 
release generated. More importantly you have a project-local copy of the 
dependencies and so can go in and edit the source directly to fix bugs, 
and then easily push that dependency on your github and make your 
project depend on your github instead of the canonical one (needed while 
you wait for the patch to get merged or if you did a gross hack). If 
it's one of your projects you can also easily make deps/app_name a link 
to your local folder too. I do not see all this being as easy with a 
package manager (but I do not know Nix, so perhaps it is compatible with 
all this). What would make my life easier compared to today though would 
be an official package *index* (erlang.mk comes with an index but it's 
hard to motivate people to fill it; so I have been pushing for something 
official for a while).

The topic of package managers regularly comes up on the mailing list 
though so there are some people who want to deal with installing things.

Now erlang.org seems down so it's a little difficult to access but I 
recommend reading the previous thread (I *think* it starts here): 

OTP team is probably on holiday leave now so no idea when things will 
get back up.

On 12/31/2014 06:00 AM, Anderson Torres wrote:
> Hello!
> I am Anderson Torres. I'm a wannabe computer scientist, and a regular
> NixOS user.
> Recently at nix-dev mailing list [N1], Eric announced that the
> developers of Erlang were discussing the need of a package manager. I
> read the message of Joe Armstrong about using Nix.
> I think using Nix is very attractive:
> - we are a small team by now, and we need more programmers and
> beta-testers (as almost any big project).
> - also, we can serve as a platform for popularizing Erlang.
> I am not an Erlang programmer, but as an active NixOS user, I
> regularly maintain Nix expressions for some good softwares [N2]. So,
> maybe I can help answering questions about Nix, and even programming
> some small testing apps!
> Many thanks in advance!
> Waiting for input,
>              Anderson
> -----------------------
> N1: http://lists.science.uu.nl/pipermail/nix-dev/2014-December/015402.html
> N2: http://monitor.nixos.org
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

Loïc Hoguin

More information about the erlang-questions mailing list