nixos/doc: recommend usage of --use-remote-sudo when switching configurations (#342338)

This commit is contained in:
Christina Sørensen 2024-09-17 06:09:31 +02:00 committed by GitHub
commit a011aa9e02
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5,12 +5,13 @@ configuration of your machine. Whenever you've [changed
something](#ch-configuration) in that file, you should do
```ShellSession
# nixos-rebuild switch
$ nixos-rebuild switch --use-remote-sudo
```
to build the new configuration, make it the default configuration for
booting, and try to realise the configuration in the running system
(e.g., by restarting system services).
to build the new configuration as your current user, and as the root user,
make it the default configuration for booting. `switch` will also try to
realise the configuration in the running system (e.g., by restarting system
services).
::: {.warning}
This command doesn't start/stop [user services](#opt-systemd.user.services)
@ -19,14 +20,23 @@ user services.
:::
::: {.warning}
These commands must be executed as root, so you should either run them
from a root shell or by prefixing them with `sudo -i`.
Applying a configuration is an action that must be done by the root user, so the
`switch`, `boot` and `test` commands should be ran with the `--use-remote-sudo`
flag. Despite its odd name, this flag runs the activation script with elevated
permissions, regardless of whether or not the target system is remote, without
affecting the other stages of the `nixos-rebuild` call. This allows unprivileged
users to rebuild the system and only elevate their permissions when necessary.
Alternatively, one can run the whole command as root while preserving user
environment variables by prefixing the command with `sudo -E`. However, this
method may create root-owned files in `$HOME/.cache` if Nix decides to use the
cache during evaluation.
:::
You can also do
```ShellSession
# nixos-rebuild test
$ nixos-rebuild test --use-remote-sudo
```
to build the configuration and switch the running system to it, but
@ -37,7 +47,7 @@ configuration.
There is also
```ShellSession
# nixos-rebuild boot
$ nixos-rebuild boot --use-remote-sudo
```
to build the configuration and make it the boot default, but not switch
@ -47,7 +57,7 @@ You can make your configuration show up in a different submenu of the
GRUB 2 boot screen by giving it a different *profile name*, e.g.
```ShellSession
# nixos-rebuild switch -p test
$ nixos-rebuild switch -p test --use-remote-sudo
```
which causes the new configuration (and previous ones created using
@ -58,7 +68,7 @@ configurations.
A repl, or read-eval-print loop, is also available. You can inspect your configuration and use the Nix language with
```ShellSession
# nixos-rebuild repl
$ nixos-rebuild repl
```
Your configuration is loaded into the `config` variable. Use tab for autocompletion, use the `:r` command to reload the configuration files. See `:?` or [`nix repl` in the Nix manual](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-repl.html) to learn more.