[erlang-questions] Erlang Package Manager
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:
> 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,
> N1: http://lists.science.uu.nl/pipermail/nix-dev/2014-December/015402.html
> N2: http://monitor.nixos.org
> erlang-questions mailing list
More information about the erlang-questions