]> www.opopop.net Git - reminder/blob - Debian_Bookworm_with_Mate_and_the_shepherd_init_system.mdwn
f18ad2555e313386dcd1f0c4f0e2a8d272f3df8b
[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     dpkg -i 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
61
62 ### Installing guile-fibers-1.3.1
63
64 This is a thread library for guile, not yet packaged for Debian. Here are the corresponding
65 packages:
66
67 amd64:
68
69 [[guile-fibers_1.3.1-1bu_amd64.deb]]
70
71 [[fibers_1.3.1-1bu_amd64.build]]
72 [[fibers_1.3.1-1bu_amd64.changes]]
73 [[fibers_1.3.1-1bu_amd64.buildinfo]]
74
75 armhf (some costly tests have been suppressed in that 2bu version, as they exceeded RAM on the compiling host):
76
77 [[guile-fibers_1.3.1-2bu_armhf.deb]]
78
79 [[fibers_1.3.1-2bu_armhf.build]]
80 [[fibers_1.3.1-2bu_armhf.changes]]
81 [[fibers_1.3.1-2bu_armhf.buildinfo]]
82
83 Source:
84
85 [[fibers_1.3.1-1bu.dsc]]
86 [[fibers_1.3.1-1bu.debian.tar.xz]]
87 [[fibers_1.3.1-2bu.dsc]]
88 [[fibers_1.3.1-2bu.debian.tar.xz]]
89 [[fibers_1.3.1.orig.tar.gz]]
90
91 You install with:
92
93     dpkg -i guile-fibers_1.3.1-1bu_amd64.deb
94
95 ### Installing shepherd-0.10.2
96
97 The packages are below:
98
99 amd64:
100
101 [[shepherd_0.10.2-0.1_amd64.deb]]
102
103 [[shepherd_0.10.2-0.1_amd64.build]]
104 [[shepherd_0.10.2-0.1_amd64.changes]]
105 [[shepherd_0.10.2-0.1_amd64.buildinfo]]
106
107 armhf:
108
109 [[shepherd_0.10.2-0.1_armhf.deb]]
110
111 [[shepherd_0.10.2-0.1_armhf.build]]
112 [[shepherd_0.10.2-0.1_armhf.changes]]
113 [[shepherd_0.10.2-0.1_armhf.buildinfo]]
114
115 Source:
116
117 [[shepherd_0.10.2-0.1.dsc]]
118 [[shepherd_0.10.2-0.1.debian.tar.xz]]
119 [[shepherd_0.10.2.orig.tar.gz]]
120
121 And you install with:
122
123     dpkg -i shepherd_0.10.2-0.1_amd64.deb
124
125 ### Installing shepherd-debian-1.4
126
127 This package installs a set of the equivalent of init scripts or systemd 
128 services for shepherd. The list of packages whose daemons are currently handled is below:
129
130 * rsyslog
131 * util-linux
132 * ntpsec
133 * cron
134 * anacron
135 * openssh-server
136 * fwknopd
137 * unbound
138 * nsd
139 * ndppd
140 * radvd
141 * openvpn
142 * cyrus-common
143 * exim4-base
144 * fetchmail
145 * cups-daemon
146 * apache2
147 * postgresql-common
148 * mariadb
149 * bucardo
150 * dbus
151 * lightdm
152 * uuid-runtime
153 * zoneminder
154 * bluetooth
155
156 This should be enough for a basic server or desktop. List of packages:
157
158 amd64:
159
160 [[shepherd-debian_1.4-1_amd64.deb]]
161
162 [[shepherd-debian_1.4-1_amd64.build]]
163 [[shepherd-debian_1.4-1_amd64.changes]]
164 [[shepherd-debian_1.4-1_amd64.buildinfo]]
165
166 armhf:
167
168 [[shepherd-debian_1.4-1_armhf.deb]]
169
170 [[shepherd-debian_1.4-1_armhf.build]]
171 [[shepherd-debian_1.4-1_armhf.changes]]
172 [[shepherd-debian_1.4-1_armhf.buildinfo]]
173
174 Source:
175
176 [[shepherd-debian_1.4-1.dsc]]
177 [[shepherd-debian_1.4-1.debian.tar.xz]]
178 [[shepherd-debian_1.4.orig.tar.gz]]
179
180 You install with:
181
182     dpkg -i shepherd-debian_1.4-1_amd64.deb
183
184 In case of errors, install the missing dependencies and retry. 
185
186 ## Using shepherd
187
188 The above steps won't change your init system at next reboot. To use 
189 shepherd as the new init system, you have to add/change the init kernel boot 
190 argument as "init=/bin/shepherd". But I recommend you first study the README 
191 in package shepherd-debian for other useful information. 
192
193 ## Using shepherd with Mate
194
195 If you use Mate, you may want to use these packages, see README.elogind.
196
197 amd64:
198
199 [[elogind_246.10-1debian2bu_amd64.deb]]
200 [[libelogind0_246.10-1debian2bu_amd64.deb]]
201 [[libpam-elogind_246.10-1debian2bu_amd64.deb]]
202
203 [[elogind_246.10-1debian2bu_amd64.build]]
204 [[elogind_246.10-1debian2bu_amd64.changes]]
205 [[elogind_246.10-1debian2bu_amd64.buildinfo]]
206
207 Source:
208
209 [[elogind_246.10-1debian2bu.dsc]]
210 [[elogind_246.10-1debian2bu.debian.tar.xz]]
211 [[elogind_246.10.orig.tar.gz]]
212
213 All 3 packages have to be installed:
214
215     dpkg -i elogind_246.10-1debian2bu_amd64.deb libelogind0_246.10-1debian2bu_amd64.deb libpam-elogind_246.10-1debian2bu_amd64.deb