Nixos-rebuild: Difference between revisions

Add note about using nixos-rebuild to switch to a specific generation
DoggoBit (talk | contribs)
Minor formatting changes, add {{cleanup}} and section about deploying on different target arch
Line 1: Line 1:
{{DISPLAYTITLE:nixos-rebuild}}{{Cleanup}}
'''nixos-rebuild''' is the NixOS command used to apply changes made to the system configuration. It can also be used for a variety of other tasks related to managing the state of a NixOS system.
'''nixos-rebuild''' is the NixOS command used to apply changes made to the system configuration. It can also be used for a variety of other tasks related to managing the state of a NixOS system.


===Basic functionality===
== Usage ==
NixOS follows a "declarative configuration" approach, which means that the proper way to modify your system is to make changes to your system configuration (typically <code>/etc/nixos/configuration.nix</code>), and then ''rebuild'' your system with <code>nixos-rebuild</code>:
NixOS follows a "declarative configuration" approach, which means that the proper way to modify your system is to make changes to your system configuration (typically <code>/etc/nixos/configuration.nix</code>), and then ''rebuild'' your system with <code>nixos-rebuild</code>:


Line 22: Line 24:
* <code>--upgrade</code>: Update the <code>nixos</code> channel of the root user before building the configuration.
* <code>--upgrade</code>: Update the <code>nixos</code> channel of the root user before building the configuration.


=== Deploying on other machines ===
<code>nixos-rebuild</code> can also be used to build and deploy system configurations on remote hosts via SSH. To use a remote host to build your system and deploy it on the current host, use:
<code>nixos-rebuild</code> can also be used to build and deploy system configurations on remote hosts via SSH. To use a remote host to build your system and deploy it on the current host, use:
<syntaxHighlight lang=console>
<syntaxHighlight lang=console>
Line 45: Line 48:


For a full list of sub-commands and options, see the <code>nixos-rebuild</code> man page.
For a full list of sub-commands and options, see the <code>nixos-rebuild</code> man page.
==== Deploying on a different architecture ====
There is currently a regression within <code>nixos-rebuild</code> that causes the local <code>nixos-rebuild</code> to invoke the binaries for the target architecture on the local system. This will naturally fail, throwing an ''"Exec format error".''<ref>https://github.com/NixOS/nixpkgs/issues/166499</ref> This can be bypassed by running <code>nixos-rebuild</code> with the <code>--fast</code> flag.


===Rolling back to a specific generation===
===Rolling back to a specific generation===