58 lines
2.5 KiB
Markdown
58 lines
2.5 KiB
Markdown
# How to use
|
|
## Structure :
|
|
```shell
|
|
~/nixos-config/
|
|
├── flake.nix # pour fixer la source/version des packages utilisés
|
|
│ # permet de fixer la source/version des packages utilisés
|
|
├── flake.lock
|
|
├── hosts/
|
|
│ # configuration système
|
|
│ ├── nixos-home/
|
|
│ │ # mon host personnel (spécifique à ma machine)
|
|
│ └── nixos/
|
|
│ ├── configuration.nix # entrée des fichiers de configuration
|
|
│ ├── hardware-configuration.nix # fichier hardware généré à l'installation
|
|
│ └── config/ # tous fichiers config
|
|
│ └── ...
|
|
├── home/
|
|
│ # configuration user
|
|
│ └── afoucaultc/
|
|
│ # mon user personnel
|
|
│ ├── home.nix # point d'entrée home-manager
|
|
│ ├── dotfiles_apps.nix # liens vers mes dossier de configuration
|
|
│ └── packages/ # lien vers les packages installés sur mon user
|
|
└── ...
|
|
```
|
|
|
|
## Installation :
|
|
1. Installer NixOS sur clé USB (via Rufus sous windows par exemple)
|
|
2. Boot sur clé USB
|
|
3. Suivre les indications (perso: chiffrement LUKS + swap activé + formatage auto)
|
|
4. Reboot dans NixOS
|
|
5. Cloner le repo git en utilisant git temporairement via nix shell : `nix-shell -p git --run "git clone https://gitlab.com/afoucaultc/nixos-config.git ~/nixos-config"`
|
|
6. Lancer le `./install` (copie hardware-configuration dans le host, ajoute le host, lance un rebuild)
|
|
7. C'est fini, reboot et lancer la nouvelle version avec Grub
|
|
|
|
> [!WARNING]
|
|
> Il peut y avoir besoin d'ajouter un utilisateur pour git, à voir par la suite
|
|
> Pour les GPU ou CPU spécifiques, des changements peuvent être nécessaires, à adapter
|
|
|
|
## Installer un nouveau package et mettre à jour
|
|
### Pour update
|
|
```nix
|
|
nix flake update
|
|
sudo nixos-rebuild switch --flake ~/nixos-config#nixos-home
|
|
```
|
|
### Pour trouver un nouveau package :
|
|
```nix
|
|
nix search nixpkgs nom_du_package
|
|
```
|
|
### Pour savoir où le déclarer :
|
|
1. system wide : dans hosts
|
|
2. user-level : dans home
|
|
### Pour savoir comment le déclarer :
|
|
1. Avec un module `programs.*` s'il existe (à préférer, voir [lien](https://home-manager-options.extranix.com/))
|
|
2. Avec `home.packages` (`home.packages = [ pkgs.xxx ];`)
|
|
### Pour gérer la version
|
|
1. version trop ancienne : référencer `pkgs-unstable.xxx`
|
|
2. Package pas encore dans nixpkgs : chercher un flake upstream officiel (packages.<system>.degault), ajouter comme input et le référencer
|