all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Christopher Baines <mail@cbaines.net>
To: help-guix@gnu.org
Subject: Re: question re. packaging, build, init and shepherd
Date: Fri, 10 May 2019 08:28:17 +0100	[thread overview]
Message-ID: <87zhnun4z2.fsf@cbaines.net> (raw)
In-Reply-To: <544e9b99-f1a1-8eec-b2d3-fbe8318ee93b@meetinghouse.net>

[-- Attachment #1: Type: text/plain, Size: 2851 bytes --]


Miles Fidelman <mfidelman@meetinghouse.net> 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/<foo> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

      parent reply	other threads:[~2019-05-10  7:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-09 16:07 question re. packaging, build, init and shepherd Miles Fidelman
2019-05-09 17:03 ` Christopher Baines
2019-05-09 21:22   ` Miles Fidelman
2019-05-10  7:12     ` Giovanni Biscuolo
2019-05-10  7:28     ` Christopher Baines [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zhnun4z2.fsf@cbaines.net \
    --to=mail@cbaines.net \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.