1
0
Fork 0
nixos-conf/README.md

50 lines
1.7 KiB
Markdown

# NixOS Configuration Files wit Flakes, Home-Manager
## Description
My NixOS configuration repository
## Install a New Host
1. Install NixOS with graphical ISO image (e.g. GNOME). During the installation the desktop environment can be choosen.
2. Reboot into NixOS
3. Edit `/etc/nixos/configuration.nix` with sudoedit
- Change hostname
- Enable flakes by adding the line `nix.settings.experimental-features = [ "nix-command" "flakes" ];`
- Install tmux, neovim, git by adding them to `environment.systemPackages = with pkgs; [`
4. Apply changes: `sudo nixos-rebuild switch` and reboot
5. Clone NixOS config repository to /home/$USER/nixos:
```
cd $HOME
git clone https://git.plueschbit.de/jan/nixos-conf ~/nixos
```
6. Add the new host to repository
- Create ~/nixos/hosts/$HOSTNAME
- `cp /etc/nixos/*.nix $HOSTNAME/.`
- Edit `~/nixos/flake.nix` and add section for new host
- Stage new config files: `git add flake.nix hosts/$HOSTNAME/*`. Otherwise, nixos-rebuild will refuse to work with the files.
8. Apply config: `sudo nixos-rebuild switch --flake ~/nixos/#<host>`
## Update Packages on a Host
Update of the file `flake.nix`:
```
cd ~/nixos
sudo nix flake update
```
Then, perform nixos rebuild:
```
sudo nixos-rebuild switch --flake ~/nixos/#<host>
```
## Upgrading to a new NixOS channel
In `flake.nix` the channel is set to `unstable`. Therefore, there is no
need to upgrade the channel.
## Garbage Collection
List all generations:
```
sudo nix-env --list-generations --profile /nix/var/nix/profiles/system
```
Keep e.g. the last five generations and perform garbage collection:
```
sudo nix-env --delete-generations +5 --profile /nix/var/nix/profiles/system
sudo nix-collect-garbage
```