|
|
|
@ -69,86 +69,110 @@ Pour résoudre les soucis d'upgrade, il est conseillé :
|
|
|
|
|
* passer en root : sudo su -
|
|
|
|
|
* formater les partitions
|
|
|
|
|
|
|
|
|
|
mkfs.ext4 -L nixos /dev/sda1
|
|
|
|
|
swapoff -a
|
|
|
|
|
mkswap /dev/sda2
|
|
|
|
|
swapon -a
|
|
|
|
|
~~~
|
|
|
|
|
mkfs.ext4 -L nixos /dev/sda1
|
|
|
|
|
swapoff -a
|
|
|
|
|
mkswap /dev/sda2
|
|
|
|
|
swapon -a
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* monter les partitions dans /mnt
|
|
|
|
|
|
|
|
|
|
mount /dev/sda1 /mnt/
|
|
|
|
|
mkdir /mnt/etc/
|
|
|
|
|
mkdir /etc/nixos
|
|
|
|
|
mkdir /mnt/nix
|
|
|
|
|
mount --bind /mnt/nix/ /nix
|
|
|
|
|
~~~
|
|
|
|
|
mount /dev/sda1 /mnt/
|
|
|
|
|
mkdir /mnt/etc/
|
|
|
|
|
mkdir /etc/nixos
|
|
|
|
|
mkdir /mnt/nix
|
|
|
|
|
mount --bind /mnt/nix/ /nix
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* installer les paquets nécessaires
|
|
|
|
|
|
|
|
|
|
apt-get install bzip2 git byobu htop glances
|
|
|
|
|
~~~
|
|
|
|
|
apt-get install bzip2 git byobu htop glances
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* création d'utilisateur (n'importe quil mot de passe)
|
|
|
|
|
|
|
|
|
|
adduser nix
|
|
|
|
|
groupadd -r nixbld
|
|
|
|
|
for n in $(seq 1 10); do useradd -c "Nix build user $n" -d /var/empty -g nixbld -G nixbld -M -N -r -s "$(which nologin)" nixbld$n; done
|
|
|
|
|
~~~
|
|
|
|
|
adduser nix
|
|
|
|
|
groupadd -r nixbld
|
|
|
|
|
for n in $(seq 1 10); do useradd -c "Nix build user $n" -d /var/empty -g nixbld -G nixbld -M -N -r -s "$(which nologin)" nixbld$n; done
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* mise-à-jour des certificats
|
|
|
|
|
|
|
|
|
|
update-ca-certificates
|
|
|
|
|
~~~
|
|
|
|
|
update-ca-certificates
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* installer nix
|
|
|
|
|
|
|
|
|
|
chown -R nix /nix
|
|
|
|
|
su - nix
|
|
|
|
|
bash <(curl https://nixos.org/nix/install)
|
|
|
|
|
exit
|
|
|
|
|
~~~
|
|
|
|
|
chown -R nix /nix
|
|
|
|
|
su - nix
|
|
|
|
|
bash <(curl https://nixos.org/nix/install)
|
|
|
|
|
exit
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* créer un profil nix pour root & un channel
|
|
|
|
|
|
|
|
|
|
. ~nix/.nix-profile/etc/profile.d/nix.sh
|
|
|
|
|
nix-channel --remove nixpkgs
|
|
|
|
|
nix-channel --add http://nixos.org/channels/nixos-unstable nixos
|
|
|
|
|
nix-channel --update
|
|
|
|
|
~~~
|
|
|
|
|
. ~nix/.nix-profile/etc/profile.d/nix.sh
|
|
|
|
|
nix-channel --remove nixpkgs
|
|
|
|
|
nix-channel --add http://nixos.org/channels/nixos-unstable nixos
|
|
|
|
|
nix-channel --update
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* installer un editeur de texte
|
|
|
|
|
|
|
|
|
|
nix-env -i vim_configurable
|
|
|
|
|
~~~
|
|
|
|
|
nix-env -i vim_configurable
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* installation de nixos-install
|
|
|
|
|
|
|
|
|
|
cat <<EOF > /root/configuration.nix
|
|
|
|
|
{ fileSystems."/" = {};
|
|
|
|
|
boot.loader.grub.enable = false;
|
|
|
|
|
}
|
|
|
|
|
EOF
|
|
|
|
|
export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos
|
|
|
|
|
export NIXOS_CONFIG=/root/configuration.nix
|
|
|
|
|
nix-env -i -A config.system.build.nixos-install \
|
|
|
|
|
-A config.system.build.nixos-option \
|
|
|
|
|
-A config.system.build.nixos-generate-config \
|
|
|
|
|
-f "<nixos>"
|
|
|
|
|
~~~
|
|
|
|
|
cat <<EOF > /root/configuration.nix
|
|
|
|
|
{ fileSystems."/" = {};
|
|
|
|
|
boot.loader.grub.enable = false;
|
|
|
|
|
}
|
|
|
|
|
EOF
|
|
|
|
|
export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos
|
|
|
|
|
export NIXOS_CONFIG=/root/configuration.nix
|
|
|
|
|
nix-env -i -A config.system.build.nixos-install \
|
|
|
|
|
-A config.system.build.nixos-option \
|
|
|
|
|
-A config.system.build.nixos-generate-config \
|
|
|
|
|
-f "<nixos>"
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* configuration de NixOS
|
|
|
|
|
|
|
|
|
|
si la machine existe déjà, cloner le dépôt dans /mnt/etc/nixos
|
|
|
|
|
pour cela, créer clef ssh et l'ajouter sur la forge
|
|
|
|
|
|
|
|
|
|
ssh-keygen -t ed25519
|
|
|
|
|
cp ~/.ssh/id_ed25519* /mnt/etc/nixos/
|
|
|
|
|
~~~
|
|
|
|
|
ssh-keygen -t ed25519
|
|
|
|
|
cp ~/.ssh/id_ed25519* /mnt/etc/nixos/
|
|
|
|
|
|
|
|
|
|
git clone <>
|
|
|
|
|
git submodule init
|
|
|
|
|
git submodule update
|
|
|
|
|
git clone <>
|
|
|
|
|
git submodule init
|
|
|
|
|
git submodule update
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* monter /etc/nixos vers /mnt/etc/nixos pour que la config clonée fonctionne
|
|
|
|
|
|
|
|
|
|
mount --bind /mnt/etc/nixos/ /etc/nixos/
|
|
|
|
|
~~~
|
|
|
|
|
mount --bind /mnt/etc/nixos/ /etc/nixos/
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* mettre à jour la configuration matérielle
|
|
|
|
|
|
|
|
|
|
export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos
|
|
|
|
|
nixos-generate-config --root /mnt
|
|
|
|
|
~~~
|
|
|
|
|
export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos
|
|
|
|
|
nixos-generate-config --root /mnt
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* vérifier le /mnt/etc/nixos/configuration.nix
|
|
|
|
|
|
|
|
|
@ -156,7 +180,8 @@ notamment le périphérique utilisé par grub
|
|
|
|
|
|
|
|
|
|
* installer le système sur le disque
|
|
|
|
|
|
|
|
|
|
unset NIXOS_CONFIG
|
|
|
|
|
nixos-install
|
|
|
|
|
|
|
|
|
|
~~~
|
|
|
|
|
unset NIXOS_CONFIG
|
|
|
|
|
nixos-install
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|