How to install ArangoDB on Arch Linux or Manjaro Linux

After J Patrick Davenport told me all about the advantages of ArangoDB during my Interview with him, it’s now time to get my hands dirty with the software.

Yes, I know, a rolling-release distribution such as Arch Linux isn’t exactly a common choice for production servers, but

Arch-based distros are great for trying things out because it’s so easy to get the hottest and newest stuff on them

I run the Arch-based Manjaro Linux on all my computers and I don’t need a dedicated server just to get familiar with a new piece of software

and therefore I’m just going to install ArangoDB on my Manjaro machine first. Ha! And while I’m at it, I’ll document what I did so you can easily repeat the steps.

While ArangoDB offers packages for all major operating systems (even including Raspbian, which is awesomely geeky) in their download section, there isn’t one for Arch. This makes sense, because a) Arch isn’t commonly used on servers and b) the common way to get third-party software on Arch isn’t pre-built packages, but the Arch User Repository (AUR), which is basically just a site that hosts build scripts for users to compile software automatically on their own machines.

The downside, of course, is that the burden of compiling is transferred to the user, but the advantage of that system is that it makes maintaining an AUR package as easy as writing a build script and updating it when new versions of the software come out or the source code URL changes. That – and the fact that the Arch community is just hyperactive – are probably the reasons why you have to try really hard to find a piece of software for which no AUR package exists. And since Manjaro Linux is fully compatible with Arch, it is also fully compatible with pretty much any AUR package (the only exception would be if the AUR package depended on other packages which have only just arrived in the Arch repos and therefore still needed some time to arrive in Manjaro).

So, if you run an Arch-based distro and in case you have yaourt installed, normally what you’d do in order to get ArangoDB would be

yaourt -S arangodb

if you wanted the latest stable release or

yaourt -S arangodb-git

if you’d like to compile directly from the development repository (for example if you’d like to become an ArangoDB contributor).

I say “normally” because unfortunately, at the time of writing, the stable AUR package is out of date (it is at version 2.6.0 while the latest stable release is 2.6.2). The problem is that 2.6.0 does not compile correctly with current GCC, so the compilation of the current version of the AUR package will exit at some point with an error. I have already commented on the AUR package asking for it to be updated, but until that happens, you can use my patched PKGBUILD file from my Dropbox. Just download the file, put it somewhere with enough space (I haven’t measured, but commenters say that the build takes up to 3.2 GB of space at its peak, but don’t worry, the resulting package takes less than 200MB of space), then run

makepkg -i

in that directory to automatically download the source files and build ArangoDB.

UPDATE: By now, the AUR package has been updated to version 2.6.2, so you can now use it directly.

Whichever route you take, both yaourt and makepkg will automatically install any unmet dependencies (on my machine I had everything except Go), compile ArangoDB and offer you to install it.

The post-install script will ask you to run a database upgrade if you have an existing ArangoDB database, and enable and start the ArangoDB systemd service. If you’re installing ArangoDB for the first time, you can safely ignore the first instruction.

Since I’ve installed ArangoDB on my machine only for taking my first steps in it and not to run an actual server, I didn’t enable the service so that it won’t auto-start with every boot. I just started it manually with

sudo systemctl start arangodb.service

After that, to see if ArangoDB runs properly, you can direct your browser to

http://localhost:8529

and you should be greeted by its web interface.

The ArangoDB web interface

However, after reboot, ArangoDB wouldn’t start anymore on my system. “systemctl status” told me that it had exited with “FATAL cannot write pid-file ‘/var/run/arangodb/arangod.pid'”. If you’re running into the same problem, create a file “arangodb.conf” in /lib/tmpfiles.d/ with the following content:

d /var/run/arangodb 0755 arangodb arangodb -

This tells systemd to create a folder on startup if the service is enabled, which is writeable by the arangodb user (and readable by everyone else).

To create the needed directory immediately instead of after the next restart, run

sudo systemd-tmpfiles --create arangodb.conf

Now

sudo systemctl start arangodb.service

should work again.

Congratulations, you should now have a working ArangoDB installation!

As the next step, if you haven’t already done so, I’d recommend checking out the First Steps section of the ArangodB documentation to make yourself familiar with the database. In the chapter Collections you will learn how to create your first collection with some documents in it and query for them. This also shows you if your installation really works.

If you’d like to try out ArangoDB on an Arch-based distro, I hope you will find this little how-to helpful. If there is anything unclear or not working, please comment and I’ll be glad to help ypu!

3 comments on “How to install ArangoDB on Arch Linux or Manjaro Linux”

Hi Thomas,
A few years ago Mike Perham published a blog post called “The Ruby Stdlib is a Ghetto”. Probably someone needs to write one for the AUR.
Maybe its just bad luck on my part but almost everything I have tried to install from the AUR has been broken in some way.
I also had trouble with both of the packages you mention. When I tried them, both take forever to compile, neither of them seemed to successfully start ArangoDB after a reboot, and arangodb-git failed broke.

Hi Mike,
it’s sad to hear that neither of the packages worked for you. I’ll investigate what’s wrong with them next week and try to make the maintainer fix them. Compiling does indeed take quite long, though for me it did work afterwards.