this post was submitted on 10 Dec 2024
64 points (97.1% liked)

Linux

5495 readers
528 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 17 points 1 week ago* (last edited 1 week ago) (2 children)

Some differences I see: Shepherd does some firewall management with ports, and I don't see the services it depends on.

That looks like it sets up sshd to start when someone connect to its port, not on boot. You can do the same with systemd, but you need additional .socket unit that will configure how .service unit is activated.

Why this kind of files should be written in a programming language at all? I guess it's a remnant from the old times, but I like when tools abstract away the programming parts, and users shouldn't have to deal with that

Systemd invents its own configuration language (it looks like ini but there no standard for that and systemd's flavor is its own) so you still need to learn it.

[–] [email protected] 14 points 1 week ago* (last edited 1 week ago)

Systemd invents its own configuration language (it looks like ini but there no standard for that and systemd’s flavor is its own) so you still need to learn it.

Yeah, but it's much more straightforward and less exotic than scheme. But I guess this type of configuration fits perfectly in Guix, where everything is already configured similarly.

[–] [email protected] 4 points 1 week ago* (last edited 1 week ago)

Yes but as a somewhat layperson (electronics engineer and light firmware design, and some hobby sysadmin stuff), I can learn systemd's "language" in 30 minutes and most attributes are so self evident that you can puzzle them together without learning the language at all.

That Shepherd mess I would have no idea what to change to make a small tweak without spending hours and hours learning it because it is written extremely cryptically in comparison.

It's the difference between modifying a config with human readable names and having to go into the source code to change heavily abbreviated variables that require a lot of background knowledge to even read.