guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Better support remote deployment


From: Ricardo Wurmus
Subject: Better support remote deployment
Date: Wed, 01 Nov 2023 13:19:49 +0100
User-agent: mu4e 1.10.7; emacs 29.1

Hi Guix,

I build software locally and deploy the result to a remote system with
“guix copy”.  This works pretty well but has a few rough edges:

1. “guix build -m manifest.scm” does not generate a profile.  It only
builds the list of packages.  To build a profile from a manifest file we
need to resort to something like this:

    guix shell -m $(PWD)/etc/container-server-manifest.scm -- sh -c 'echo 
$GUIX_ENVIRONMENT'

2. “guix package” cannot install an existing profile store item as the
current generation of the profile.  It can, however, install individual
package items into a profile.

3. “guix package --remove” does not support regular expressions, so
removing packages that were installed with “guix install /gnu/store/…”
cannot easily be removed.

Because of these limitations I cannot make use of a Guix profile symlink
forest on the target system.  Instead I build a profile locally (with
the “guix shell” trick above), copy it to the remote with “guix copy
--to=remote /gnu/store/…-profile”, and then link that profile to a fixed
location on the remote system.

I would like to change this workflow so that I can benefit from roll
backs without having to manually mess with symlinks.

What do you think about changing “guix package” and/or “guix copy” to
better support deployment of remote profiles?

-- 
Ricardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]