From 27031d0412c0b0346c8711665d7a734547b7f1c0 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 15 Aug 2023 19:32:42 +0000 Subject: [PATCH] --- ...ith_Mate_and_the_shepherd_init_system.mdwn | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 Debian_Bookworm_with_Mate_and_the_shepherd_init_system.mdwn diff --git a/Debian_Bookworm_with_Mate_and_the_shepherd_init_system.mdwn b/Debian_Bookworm_with_Mate_and_the_shepherd_init_system.mdwn new file mode 100644 index 0000000..c547091 --- /dev/null +++ b/Debian_Bookworm_with_Mate_and_the_shepherd_init_system.mdwn @@ -0,0 +1,204 @@ +# Debian Bookworm with Mate and the shepherd init system + +## Shepherd? Never heard of that! + +[shepherd](https://www.gnu.org/software/shepherd/) is the init system for [guix](https://guix.gnu.org/). +It has a lot of drawbacks for the average Debian user: + +1. It is not in an official Debian package, you have to install it yourself +2. Following 1., package maintainers don't include in them the equivalent +of an init script or systemd service, so writing these is on your own +3. It is written in a Lisp like language called [guile](https://www.gnu.org/software/guile/), +which is not mainstream at all + +So why bother using it? Several reasons: + +1. You may have noticed when reading other pages on this site that I don't like what systemd has become +2. And keeping sysvinit is not attractive either +3. No breaking features to be seen in other init systems worth testing them +4. shepherd by contrary is an exotic beast a hacker can only be tempted to consider +5. I was a guile contributor a long time ago, so the language is not a barrier at all + +When Covid lockdown happened, I had a lot of free time, so I bite the bullet and went on implementing +shepherd for Debian, to the point that shepherd runs now on my main hosts. Below is the result of that work. + +## Installing shepherd on Debian Bookworm + +### Installing guile-3.0 + +Bookworm packages guile-3.0.8. This may work, but my tests have been done with a more recent version, +guile-3.0.9. For your convenience, below are the corresponding Debian packages: + +amd64: + +[[guile-3.0-libs_3.0.9-0bu1_amd64.deb]] +[[guile-3.0-dev_3.0.9-0bu1_amd64.deb]] +[[guile-3.0_3.0.9-0bu1_amd64.deb]] + +[[guile-3.0_3.0.9-0bu1_amd64.build]] +[[guile-3.0_3.0.9-0bu1_amd64.changes]] +[[guile-3.0_3.0.9-0bu1_amd64.buildinfo]] + +armhf: + +[[guile-3.0-libs_3.0.9-0bu1_armhf.deb]] +[[guile-3.0-dev_3.0.9-0bu1_armhf.deb]] +[[guile-3.0_3.0.9-0bu1_armhf.deb]] + +[[guile-3.0_3.0.9-0bu1_armhf.build]] +[[guile-3.0_3.0.9-0bu1_armhf.changes]] +[[guile-3.0_3.0.9-0bu1_armhf.buildinfo]] + +Source: + +[[guile-3.0_3.0.9-0bu1.dsc]] +[[guile-3.0_3.0.9-0bu1.debian.tar.xz]] +[[guile-3.0_3.0.9.orig.tar.gz]] + +And you just have to run: + +### Installing guile-fibers-1.3.1 + +This is a thread library for guile, not yet packaged for Debian. Here are the corresponding +packages: + +amd64: + +[[guile-fibers_1.3.1-1bu_amd64.deb]] + +[[fibers_1.3.1-1bu_amd64.build]] +[[fibers_1.3.1-1bu_amd64.changes]] +[[fibers_1.3.1-1bu_amd64.buildinfo]] + +armhf (some costly tests have been suppressed in that 2bu version, as they exceeded RAM on the compiling host): + +[[guile-fibers_1.3.1-2bu_armhf.deb]] + +[[fibers_1.3.1-2bu_armhf.build]] +[[fibers_1.3.1-2bu_armhf.changes]] +[[fibers_1.3.1-2bu_armhf.buildinfo]] + +Source: + +[[fibers_1.3.1-1bu.dsc]] +[[fibers_1.3.1-1bu.debian.tar.xz]] +[[fibers_1.3.1-2bu.dsc]] +[[fibers_1.3.1-2bu.debian.tar.xz]] +[[fibers_1.3.1.orig.tar.gz]] + +You install with: + +### Installing shepherd-0.10.2 + +The packages are below: + +amd64: + +[[shepherd_0.10.2-0.1_amd64.deb]] + +[[shepherd_0.10.2-0.1_amd64.build]] +[[shepherd_0.10.2-0.1_amd64.changes]] +[[shepherd_0.10.2-0.1_amd64.buildinfo]] + +armhf: + +[[shepherd_0.10.2-0.1_armhf.deb]] + +[[shepherd_0.10.2-0.1_armhf.build]] +[[shepherd_0.10.2-0.1_armhf.changes]] +[[shepherd_0.10.2-0.1_armhf.buildinfo]] + +Source: + +[[shepherd_0.10.2-0.1.dsc]] +[[shepherd_0.10.2-0.1.debian.tar.xz]] +[[shepherd_0.10.2.orig.tar.gz]] + +And you install with: + +### Installing shepherd-debian-1.4 + +This package installs a set of the equivalent of init scripts or systemd +services for shepherd. The list of packages whose daemons are currently handled is below: + +* rsyslog +* util-linux +* ntpsec +* cron +* anacron +* openssh-server +* fwknopd +* unbound +* nsd +* ndppd +* radvd +* openvpn +* cyrus-common +* exim4-base +* fetchmail +* cups-daemon +* apache2 +* postgresql-common +* mariadb +* bucardo +* dbus +* lightdm +* uuid-runtime +* zoneminder +* bluetooth + +This should be enough for a basic server or desktop. List of packages: + +amd64: + +[[shepherd-debian_1.4-1_amd64.deb]] + +[[shepherd-debian_1.4-1_amd64.build]] +[[shepherd-debian_1.4-1_amd64.changes]] +[[shepherd-debian_1.4-1_amd64.buildinfo]] + +armhf: + +[[shepherd-debian_1.4-1_armhf.deb]] + +[[shepherd-debian_1.4-1_armhf.build]] +[[shepherd-debian_1.4-1_armhf.changes]] +[[shepherd-debian_1.4-1_armhf.buildinfo]] + +Source: + +[[shepherd-debian_1.4-1.dsc]] +[[shepherd-debian_1.4-1.debian.tar.xz]] +[[shepherd-debian_1.4.orig.tar.gz]] + +You install with: + +In case of errors, install the missing dependencies and retry. + +## Using shepherd + +The above steps won't change your init system at next reboot. To use +shepherd as the new init system, you have to add/change the init kernel boot +argument as "init=/bin/shepherd". But I recommend you first study the README +in package shepherd-debian for other useful information. + +## Using shepherd with Mate + +If you use Mate, you may want to use these packages, see README.elogind. + +amd64: + +[[elogind_246.10-1debian2bu_amd64.deb]] +[[libelogind0_246.10-1debian2bu_amd64.deb]] +[[libpam-elogind_246.10-1debian2bu_amd64.deb]] + +[[elogind_246.10-1debian2bu_amd64.build]] +[[elogind_246.10-1debian2bu_amd64.changes]] +[[elogind_246.10-1debian2bu_amd64.buildinfo]] + +Source: + +[[elogind_246.10-1debian2bu.dsc]] +[[elogind_246.10-1debian2bu.debian.tar.xz]] +[[elogind_246.10.orig.tar.gz]] + -- 2.39.2