From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Baines Subject: Re: question re. packaging, build, init and shepherd Date: Fri, 10 May 2019 08:28:17 +0100 Message-ID: <87zhnun4z2.fsf@cbaines.net> References: <874l63o90m.fsf@cbaines.net> <544e9b99-f1a1-8eec-b2d3-fbe8318ee93b@meetinghouse.net> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:51153) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOzx9-0005xg-32 for help-guix@gnu.org; Fri, 10 May 2019 03:28:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hOzx8-0001OA-15 for help-guix@gnu.org; Fri, 10 May 2019 03:28:23 -0400 Received: from mira.cbaines.net ([2a01:7e00::f03c:91ff:fe69:8da9]:47092) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOzx7-0001NV-O3 for help-guix@gnu.org; Fri, 10 May 2019 03:28:21 -0400 Received: from localhost (cpc102582-walt20-2-0-cust14.13-2.cable.virginm.net [86.27.34.15]) by mira.cbaines.net (Postfix) with ESMTPSA id CB2C816EF4 for ; Fri, 10 May 2019 08:28:20 +0100 (BST) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 114319db for ; Fri, 10 May 2019 07:28:20 +0000 (UTC) In-reply-to: <544e9b99-f1a1-8eec-b2d3-fbe8318ee93b@meetinghouse.net> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix@gnu.org --=-=-= Content-Type: text/plain Miles Fidelman writes: >>> And then there's the question of init systems: Until systemd came >>> along, ./configure;make;make install generally just works - leaving >>> init files in the right places, starting up daemons, etc. >>> >>> Which leads to the question of, if I want to install something >>> complicated in GUIX - say the Sympa list manager (to pick a non-random >>> example), which comes with standard sysvinit scripts - can I just >>> ./configure;make;make install? Does Shepherd do the right thing with >>> sysvinit scripts? Can I invoke them through Shepherd (e.g, after a >>> config change)? Can I still edit & invoke the init scripts in the >>> classic ways (vi, /etc/init.d/ restart). >> The configuration of the shepherd is normally entirely managed through >> your Guix operating-system definition. The configuration is generated in >> te store, and shepherd looks at that. >> >> This is important as it allows you to boot in to previous generations of >> your system, which is useful for recovering the system if things go >> wrong. >> >> So, whereas I think things like systemd are aware of sysvinit scripts in >> the usual place, the shepherd is completely unaware. > > So... that kind of leaves out automatically setting up servers. I > mean, most server software still comes with init files, maybe with > systemd or other init files, but generally make install sets things up > so that servers start & run. > > So how does GUIX support this? > > And, for that matter, how does GUIX handle any kind of post-install > configuration? E.g., the kind of things that debconf might be used > for. So, I used to write Debian packages, including the debconf stuff, so I have some experience of this While a Debian package installs effectively with root privileges and can modify the state of the system as much as it wants to, when you install a Guix package, all you're saying is I want these specific things to exist in /gnu/store, make it so. When you install a Guix package, nothing can be changed, you're only adding entries to the store, if they weren't already there. With Debian packages, the service management can be included in the package, so you can dpkg-reconfigure the package, and have the debconf scripts modify the configuration for you. With Guix, packages are entirely separate from services, services just use packages. Guix has a framework for defining services and managing the configuration. So, like packages, the best way of getting a service running on a Guix System, is to write a service-type definition. This can be quite short, if the configuration is simple, or you don't manage it. Or they can be quite complex if lots of the configuration can be managed from Guile. So, Guix supports system services through it's own abstraction. Hope that helps, Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlzVKBFfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE 9Xc7fg/6A7k6uIxz0GGIWFZNOTl3k3lQRPI8/a0PNyCWdbzjtLVwwu7la0Ahzcf5 M35coVmD/oqn5134/giphSB0ttDxVK6sfu6/Qz+kDcrodZLzIffInYSS5zSUKAdN UwCKv/9SA6wO9GkIH9QCQHgTjPoOjEBM3hP0XGcQTkrpd0SskIV44TEDEwD6YgCU bC//jtXlqGbFNeLgmlEBETVoz4nNtEAr6cN4w/c2phuOxq/5+LF4rTk6NTeb+4D4 yrEtXS8pdWg4xnqFzOYOQQHc5TZVZCwF8ramiFj2sbgy/5V7XatryBBHcOMrcSCR zkh3d/j7xZdguqiI+Y2YbNfMxM10prFZgib8XTOo0o4UM9Szqul97t6rmwTa+jR6 EPuwwH/wQf3Rg4PxxOdg6sbehprSLP17kx6nHFbmaANwYl+Yj7sr1Xf9FPqh+wCm WXhg2v5XDc2O0yGbLHY3rEQBpF7CONHTdDdbL1T91MHYh3jXuSQpkNQufLxrmZ94 1SG7FMpnyh6ttkzLFvH+eP4ffCwr8ULHj0L7igXppO1X6nej5dy3Jw0qBK285x2U orV6/KP3VPJEha6JdooJ8FPDAPz197YVlKuyFL+1YCn316Y/t/Hbq7I5p/FqnLwL uuudGU5jYO3EBH6P7gWsrS6frE1fi0Gg40e6EQ0sIgB1t983GzM= =ikAQ -----END PGP SIGNATURE----- --=-=-=--