On systems such as Alpine Linux (with busybox) and Adelie Linux (with
coreutils), the shell core utilities such as pwd, true, false, env, and
yes are all symlinks to a single binary. This single binary relies on
the name of the symlink to determine which command ("applet" in busybox
parlance) to execute. Therefore creating symlinks to these symlinks will
not work since the single binary will only see the top-level symlink and
thus think it is an invalid command.
Instead, generate executable shell scripts that exec into the desired
command. This also allows $PATH based resolution to occur instead of
hard-coding the command paths.
See also issue #94.
|
||
|---|---|---|
| etc | ||
| example-scripts | ||
| src | ||
| test | ||
| CMakeLists.txt | ||
| COPYING | ||
| docker-build-centos.sh | ||
| docker-build-debian.sh | ||
| docker-xbuild-debian-armhf.sh | ||
| README.md | ||
| UserManual.md | ||
Laminar CI 
Laminar (https://laminar.ohwg.net) is a lightweight and modular Continuous Integration service for Linux. It is self-hosted and developer-friendly, eschewing a configuration UI in favour of simple version-controllable configuration files and scripts.
Laminar encourages the use of existing GNU/Linux tools such as bash and cron instead of reinventing them.
Although the status and progress front-end is very user-friendly, administering a Laminar instance requires writing shell scripts and manually editing configuration files. That being said, there is nothing esoteric here and the guide should be straightforward for anyone with even very basic Linux server administration experience.
See the website and the documentation for more information.
Building from source
First install development packages for capnproto (version 0.7.0 or newer), rapidjson, sqlite and boost (for the header-only multi_index_container library) from your distribution's repository or other source. Then:
git clone https://github.com/ohwgiles/laminar.git
cd laminar
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/
make -j4
sudo make install
make install includes a systemd unit file. If you intend to use it, consider creating a new user laminar or modifying the user specified in the unit file.