74 lines
2.0 KiB
Markdown
74 lines
2.0 KiB
Markdown
# NixOS Update
|
|
|
|
`nixos-update` ist der eingebaute Update-Helfer für dieses Repo. Er zieht zuerst den neuesten Stand aus Git und führt danach `nixos-rebuild` mit deiner lokalen Flake-Konfiguration aus.
|
|
|
|
Der Befehl wird über [`modules/updater.nix`](../modules/updater.nix) ins System installiert.
|
|
|
|
## Repo im Modul setzen
|
|
|
|
Repo-Pfad und Flake-Ziel stehen direkt in `modules/updater.nix`. Für Freunde und für ein dauerhaftes System-Repo ist `/etc/nixos` der empfohlene Ort.
|
|
|
|
```nix
|
|
repo_root="/etc/nixos"
|
|
flake_target="template"
|
|
```
|
|
|
|
## Standard
|
|
|
|
```bash
|
|
nixos-update
|
|
```
|
|
|
|
Das ist der normale Alltagsfall:
|
|
|
|
```bash
|
|
git pull --ff-only
|
|
sudo nixos-rebuild switch --flake /pfad/zum/repo#<flake_target>
|
|
```
|
|
|
|
## Modi
|
|
|
|
```bash
|
|
nixos-update switch
|
|
nixos-update boot
|
|
```
|
|
|
|
- `switch` aktiviert die neue Generation sofort. Das ist auch der Standard.
|
|
- `boot` baut die neue Generation, aktiviert sie aber erst für den nächsten Neustart.
|
|
|
|
## Weitere Optionen
|
|
|
|
```bash
|
|
nixos-update update-inputs
|
|
nixos-update dry-run
|
|
```
|
|
|
|
- `update-inputs` führt vor dem Rebuild noch `nix flake update` aus.
|
|
- `dry-run` zeigt die Schritte und Befehle an, ohne sie auszuführen.
|
|
|
|
## Typische Beispiele
|
|
|
|
```bash
|
|
nixos-update
|
|
nixos-update update-inputs
|
|
nixos-update boot
|
|
nixos-update boot update-inputs
|
|
nixos-update dry-run
|
|
```
|
|
|
|
## Hinweise
|
|
|
|
- Das Skript nutzt `git pull --ff-only`. Wenn dein lokaler Branch und der Remote auseinanderlaufen, stoppt der Pull bewusst.
|
|
- Wenn `repo_root` für den normalen Benutzer nicht beschreibbar ist, laufen Git- und Flake-Befehle mit `sudo`. Das passt besonders für `/etc/nixos`.
|
|
- Vor jedem größeren Schritt zeigt das Skript den Abschnitt und den konkreten Befehl an.
|
|
- Bei lokalen uncommitteten Änderungen erscheint vor dem Pull eine Warnung.
|
|
- `nixos-update` fragt per `sudo -v` nach deinem Passwort, sobald es sudo wirklich braucht.
|
|
- `nixos-sync` und `update-nixos` bleiben als Alias erhalten und rufen intern ebenfalls `nixos-update` auf.
|
|
- Wenn du das Repo an einen anderen Ort legst, ändere `repo_root` direkt in `modules/updater.nix`.
|
|
|
|
## Hilfe
|
|
|
|
```bash
|
|
nixos-update help
|
|
```
|