Development

To set up a development environment there are currently two choices: downloading and installing pre-built Static Tools, or Bootstrapping your own set of tools using the provided instructions and scripts as a guide.

Downloading the static tools is certainly easier and faster, but bootstrapping is arguably more fun. The first option takes at most a few minutes, possibly seconds, while the second option is at least 2 hours, probably more depending on how much you do by hand, how fast your hardware is, and how much coffee is available.

Warning

The Mere Linux build mechanism uses LXC containers, but does not yet support unprivileged containers. Perhaps someday it will. In the meantime it is recommended that your host development system is one where using privileged containers is an acceptable risk.

To get started, you’ll need a modern Linux system where the kernel supports cgroups. Most systems these days do. The instructions here have been tested using Ubuntu 14.04, though certainly others should work as well. Be sure that the system has the following utilities installed:

  • curl

  • git

  • iptables

  • sudo

The Bootstrapping section requires these additional tools:

  • bash

  • gcc

  • make

Start by setting up some important directories:

sudo install -d /mere/bin /mere/logs /mere/pkgs /mere/sources
/mere

A top-level directory to house everything related to building and packaging the final system

/mere/bin

Houses development scripts and utilities

/mere/logs

All of the logs pacman creates during packaging will go here

/mere/pkgs

Stores final system packages and a local pacman repository

/mere/sources

Downloaded source cache

Now grant your current user ownership of the /mere directory and its contents:

sudo chown -R $(whoami) /mere

Finally, clone the Mere Linux repository which contains scripts and build recipes for the final system packages:

cd /mere/sources
git clone https://github.com/jhuntwork/merelinux

Now it’s time to choose your own adventure: Static Tools, or Bootstrapping.