]> www.opopop.net Git - reminder/blob - Debian_Bookworm_with_Mate_and_the_shepherd_init_system.mdwn
attachment upload
[reminder] / Debian_Bookworm_with_Mate_and_the_shepherd_init_system.mdwn
1 # Debian Bookworm with Mate and the shepherd init system
2
3 ## Shepherd? Never heard of that!
4
5 [shepherd](https://www.gnu.org/software/shepherd/) is the init system for [guix](https://guix.gnu.org/). 
6 It has a lot of drawbacks for the average Debian user:
7
8 1. It is not in an official Debian package, you have to install it yourself
9 2. Following 1., package maintainers don't include in them the equivalent 
10 of an init script or systemd service, so writing these is on your own 
11 3. It is written in a Lisp like language called [guile](https://www.gnu.org/software/guile/), 
12 which is not mainstream at all
13
14 So why bother using it? Several reasons:
15
16 1. You may have noticed when reading other pages on this site that I don't like what systemd has become
17 2. And keeping sysvinit is not attractive either
18 3. No breaking features to be seen in other init systems worth testing them
19 4. shepherd by contrary is an exotic beast a hacker can only be tempted to consider 
20 5. I was a guile contributor a long time ago, so the language is not a barrier at all
21
22 When Covid lockdown happened, I had a lot of free time, so I bite the bullet and went on implementing
23 shepherd for Debian, to the point that shepherd runs now on my main hosts. Below is the result of that work. 
24
25 ## Installing shepherd on Debian Bookworm
26
27 ### Installing guile-3.0
28
29 Bookworm packages guile-3.0.8. This may work, but my tests have been done with a more recent version, 
30 guile-3.0.9. For your convenience, below are the corresponding Debian packages:
31
32 amd64:
33
34 [[guile-3.0-libs_3.0.9-0bu1_amd64.deb]]
35 [[guile-3.0-dev_3.0.9-0bu1_amd64.deb]]
36 [[guile-3.0_3.0.9-0bu1_amd64.deb]]
37
38 [[guile-3.0_3.0.9-0bu1_amd64.build]]
39 [[guile-3.0_3.0.9-0bu1_amd64.changes]]
40 [[guile-3.0_3.0.9-0bu1_amd64.buildinfo]]
41
42 armhf:
43
44 [[guile-3.0-libs_3.0.9-0bu1_armhf.deb]]
45 [[guile-3.0-dev_3.0.9-0bu1_armhf.deb]]
46 [[guile-3.0_3.0.9-0bu1_armhf.deb]]
47
48 [[guile-3.0_3.0.9-0bu1_armhf.build]]
49 [[guile-3.0_3.0.9-0bu1_armhf.changes]]
50 [[guile-3.0_3.0.9-0bu1_armhf.buildinfo]]
51
52 Source:
53
54 [[guile-3.0_3.0.9-0bu1.dsc]]
55 [[guile-3.0_3.0.9-0bu1.debian.tar.xz]]
56 [[guile-3.0_3.0.9.orig.tar.gz]]
57
58 And you just have to run:
59
60 ### Installing guile-fibers-1.3.1
61
62 This is a thread library for guile, not yet packaged for Debian. Here are the corresponding
63 packages:
64
65 amd64:
66
67 [[guile-fibers_1.3.1-1bu_amd64.deb]]
68
69 [[fibers_1.3.1-1bu_amd64.build]]
70 [[fibers_1.3.1-1bu_amd64.changes]]
71 [[fibers_1.3.1-1bu_amd64.buildinfo]]
72
73 armhf (some costly tests have been suppressed in that 2bu version, as they exceeded RAM on the compiling host):
74
75 [[guile-fibers_1.3.1-2bu_armhf.deb]]
76
77 [[fibers_1.3.1-2bu_armhf.build]]
78 [[fibers_1.3.1-2bu_armhf.changes]]
79 [[fibers_1.3.1-2bu_armhf.buildinfo]]
80
81 Source:
82
83 [[fibers_1.3.1-1bu.dsc]]
84 [[fibers_1.3.1-1bu.debian.tar.xz]]
85 [[fibers_1.3.1-2bu.dsc]]
86 [[fibers_1.3.1-2bu.debian.tar.xz]]
87 [[fibers_1.3.1.orig.tar.gz]]
88
89 You install with:
90
91 ### Installing shepherd-0.10.2
92
93 The packages are below:
94
95 amd64:
96
97 [[shepherd_0.10.2-0.1_amd64.deb]]
98
99 [[shepherd_0.10.2-0.1_amd64.build]]
100 [[shepherd_0.10.2-0.1_amd64.changes]]
101 [[shepherd_0.10.2-0.1_amd64.buildinfo]]
102
103 armhf:
104
105 [[shepherd_0.10.2-0.1_armhf.deb]]
106
107 [[shepherd_0.10.2-0.1_armhf.build]]
108 [[shepherd_0.10.2-0.1_armhf.changes]]
109 [[shepherd_0.10.2-0.1_armhf.buildinfo]]
110
111 Source:
112
113 [[shepherd_0.10.2-0.1.dsc]]
114 [[shepherd_0.10.2-0.1.debian.tar.xz]]
115 [[shepherd_0.10.2.orig.tar.gz]]
116
117 And you install with:
118
119 ### Installing shepherd-debian-1.4
120
121 This package installs a set of the equivalent of init scripts or systemd 
122 services for shepherd. The list of packages whose daemons are currently handled is below:
123
124 * rsyslog
125 * util-linux
126 * ntpsec
127 * cron
128 * anacron
129 * openssh-server
130 * fwknopd
131 * unbound
132 * nsd
133 * ndppd
134 * radvd
135 * openvpn
136 * cyrus-common
137 * exim4-base
138 * fetchmail
139 * cups-daemon
140 * apache2
141 * postgresql-common
142 * mariadb
143 * bucardo
144 * dbus
145 * lightdm
146 * uuid-runtime
147 * zoneminder
148 * bluetooth
149
150 This should be enough for a basic server or desktop. List of packages:
151
152 amd64:
153
154 [[shepherd-debian_1.4-1_amd64.deb]]
155
156 [[shepherd-debian_1.4-1_amd64.build]]
157 [[shepherd-debian_1.4-1_amd64.changes]]
158 [[shepherd-debian_1.4-1_amd64.buildinfo]]
159
160 armhf:
161
162 [[shepherd-debian_1.4-1_armhf.deb]]
163
164 [[shepherd-debian_1.4-1_armhf.build]]
165 [[shepherd-debian_1.4-1_armhf.changes]]
166 [[shepherd-debian_1.4-1_armhf.buildinfo]]
167
168 Source:
169
170 [[shepherd-debian_1.4-1.dsc]]
171 [[shepherd-debian_1.4-1.debian.tar.xz]]
172 [[shepherd-debian_1.4.orig.tar.gz]]
173
174 You install with:
175
176 In case of errors, install the missing dependencies and retry. 
177
178 ## Using shepherd
179
180 The above steps won't change your init system at next reboot. To use 
181 shepherd as the new init system, you have to add/change the init kernel boot 
182 argument as "init=/bin/shepherd". But I recommend you first study the README 
183 in package shepherd-debian for other useful information. 
184
185 ## Using shepherd with Mate
186
187 If you use Mate, you may want to use these packages, see README.elogind.
188
189 amd64:
190
191 [[elogind_246.10-1debian2bu_amd64.deb]]
192 [[libelogind0_246.10-1debian2bu_amd64.deb]]
193 [[libpam-elogind_246.10-1debian2bu_amd64.deb]]
194
195 [[elogind_246.10-1debian2bu_amd64.build]]
196 [[elogind_246.10-1debian2bu_amd64.changes]]
197 [[elogind_246.10-1debian2bu_amd64.buildinfo]]
198
199 Source:
200
201 [[elogind_246.10-1debian2bu.dsc]]
202 [[elogind_246.10-1debian2bu.debian.tar.xz]]
203 [[elogind_246.10.orig.tar.gz]]
204