guix system: If the new system generation already exists, overwrite it.
Fixes <http://bugs.gnu.org/25100>. Before that, 'guix system reconfigure' would fail if the next generation already existed. * guix/scripts/system.scm (switch-to-system): Use 'switch-symlink' instead of 'symlink'. * doc/guix.texi (Using the Configuration System, Invoking guix system): Document the behavior. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
4bd391f557
commit
067a2e2de9
|
@ -7174,7 +7174,15 @@ modifying or deleting previous generations. Old system generations get
|
|||
an entry in the GRUB boot menu, allowing you to boot them in case
|
||||
something went wrong with the latest generation. Reassuring, no? The
|
||||
@command{guix system list-generations} command lists the system
|
||||
generations available on disk.
|
||||
generations available on disk. It is also possible to roll back the
|
||||
system via the commands @command{guix system roll-back} and
|
||||
@command{guix system switch-generation}.
|
||||
|
||||
Although the command @command{guix system reconfigure} will not modify
|
||||
previous generations, must take care when the current generation is not
|
||||
the latest (e.g., after invoking @command{guix system roll-back}), since
|
||||
the operation might overwrite a later generation (@pxref{Invoking guix
|
||||
system}).
|
||||
|
||||
@unnumberedsubsubsec The Programming Interface
|
||||
|
||||
|
@ -12599,6 +12607,12 @@ currently running; if a service is currently running, it does not
|
|||
attempt to upgrade it since this would not be possible without stopping it
|
||||
first.
|
||||
|
||||
This command creates a new generation whose number is one greater than
|
||||
the current generation (as reported by @command{guix system
|
||||
list-generations}). If that generation already exists, it will be
|
||||
overwritten. This behavior mirrors that of @command{guix package}
|
||||
(@pxref{Invoking guix package}).
|
||||
|
||||
It also adds a GRUB menu entry for the new OS configuration, and moves
|
||||
entries for older configurations to a submenu---unless
|
||||
@option{--no-grub} is passed.
|
||||
|
|
|
@ -326,7 +326,7 @@ it atomically, and then run OS's activation script."
|
|||
(let* ((system (derivation->output-path drv))
|
||||
(number (+ 1 (generation-number profile)))
|
||||
(generation (generation-file-name profile number)))
|
||||
(symlink system generation)
|
||||
(switch-symlinks generation system)
|
||||
(switch-symlinks profile generation)
|
||||
|
||||
(format #t (_ "activating system...~%"))
|
||||
|
|
Loading…
Reference in New Issue