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>master
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
|
an entry in the GRUB boot menu, allowing you to boot them in case
|
||||||
something went wrong with the latest generation. Reassuring, no? The
|
something went wrong with the latest generation. Reassuring, no? The
|
||||||
@command{guix system list-generations} command lists the system
|
@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
|
@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
|
attempt to upgrade it since this would not be possible without stopping it
|
||||||
first.
|
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
|
It also adds a GRUB menu entry for the new OS configuration, and moves
|
||||||
entries for older configurations to a submenu---unless
|
entries for older configurations to a submenu---unless
|
||||||
@option{--no-grub} is passed.
|
@option{--no-grub} is passed.
|
||||||
|
|
|
@ -326,7 +326,7 @@ it atomically, and then run OS's activation script."
|
||||||
(let* ((system (derivation->output-path drv))
|
(let* ((system (derivation->output-path drv))
|
||||||
(number (+ 1 (generation-number profile)))
|
(number (+ 1 (generation-number profile)))
|
||||||
(generation (generation-file-name profile number)))
|
(generation (generation-file-name profile number)))
|
||||||
(symlink system generation)
|
(switch-symlinks generation system)
|
||||||
(switch-symlinks profile generation)
|
(switch-symlinks profile generation)
|
||||||
|
|
||||||
(format #t (_ "activating system...~%"))
|
(format #t (_ "activating system...~%"))
|
||||||
|
|
Reference in New Issue