Skip to main content
Seb's blog

Ça va être dur de revenir sur une distribution plus standard...

Je m'intéresse de plus en plus à mon nouveau jouet du nom de Nixos, je me dis que ça va être dur de revenir sur ma Debian ou même openSUSE ou encore tout autre chose qui est plus "naturelle", j'aime vraiment le concept de cette distribution, cette solidité que donne l'ensemble.

Je l'ai mis en brac, je l'ai torturé, je l'ai soumis à tout ce que je savais faire et elle tient. Pire quand je me trompe dans le fichier de configuration, nix me corrige en me disant ce qui merde. Puisqu'un exemple vaut mieux qu'un long discours, je vais vous en faire une démonstration, je vais faire un faute volontaire:

  # Select internationalisation properties.
  # i18n.defaultLocale = "en_US.UTF-8";
  # console = {
  #   font = "Lat2-Terminus16";
  #   keyMap = "us";
  # };
  i18n.defaultLocale = "fr_FR.UTF-8";
   console = {
     font = "Lat2-Terminus16";
     keyMap = "fre";
   };

Pour l'exemple, au lieu de keyMap = "fr"; , je rajoute un "e" keyMap = "fre"; et voila ce que dit nix:

# nixos-rebuild switch
building Nix...
building the system configuration...
these derivations will be built:
  /nix/store/3ccsgvb9w3x8kc01pd3s0hz298p5n6p0-link-units.drv
  /nix/store/q628lwhmkhcs2wimk5ln09zjpynpnah3-keymap.drv
  /nix/store/1k5kgci4jn418wlqwkhjm585b5176apk-stage-1-init.sh.drv
  /nix/store/7ffr738sq0pvqnwwgf4f6qn9lj5hpjf7-initrd-linux-5.10.88.drv
  /nix/store/s6xk5zq8npjxly0vh9f76viqcymiyk9z-system-units.drv
  /nix/store/v6jkbx6fjalhzsvfjaals5lj7jqr0z7v-etc.drv
  /nix/store/cz4hjpy967m3bss6yhpn5c7f9383i233-nixos-system-debiacerlinux-21.11.334934.8a053bc2255.drv
building '/nix/store/s6xk5zq8npjxly0vh9f76viqcymiyk9z-system-units.drv'...
building '/nix/store/q628lwhmkhcs2wimk5ln09zjpynpnah3-keymap.drv'...
building '/nix/store/3ccsgvb9w3x8kc01pd3s0hz298p5n6p0-link-units.drv'...
loadkeys: Unable to open file: fre: No such file or directory
builder for '/nix/store/q628lwhmkhcs2wimk5ln09zjpynpnah3-keymap.drv' failed with exit code 1
cannot build derivation '/nix/store/1k5kgci4jn418wlqwkhjm585b5176apk-stage-1-init.sh.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/7ffr738sq0pvqnwwgf4f6qn9lj5hpjf7-initrd-linux-5.10.88.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/cz4hjpy967m3bss6yhpn5c7f9383i233-nixos-system-debiacerlinux-21.11.334934.8a053bc2255.drv': 1 dependencies couldn't be built
error: build of '/nix/store/cz4hjpy967m3bss6yhpn5c7f9383i233-nixos-system-debiacerlinux-21.11.334934.8a053bc2255.drv' failed

C'est pas super clair et ça aurait le mérite d'avoir un peu de couleur comme les retours de zypper mais l'important est là:

loadkeys: Unable to open file: fre: No such file or directory

Je corrige et voila:

# nixos-rebuild switch
building Nix...
building the system configuration...
activating the configuration...
setting up /etc...
reloading user units for sebastien...
setting up tmpfiles

Le truc c'est qu'une fois que notre fichier principal de config à été accepté une fois et a permis de construire le système, on a l'impression d'être dans un tank que rien ne peux casser. C'est impressionnant car on a l'impression d'être sur un système en lecture seule, tant qu'on ne lui a pas dit qu'on veut tel changement, rien ne bouge.

Je me suis fait mon premier nix-shell pour l'utilisation de pelican:

# python.nix
with (import <nixpkgs> {});
let
  my-python-packages = python-packages: with python-packages; [
    pelican
    beautifulsoup4
    blinker
    buildPythonPackage
    docutils
    feedgenerator
    fetchFromGitHub
    git
    glibcLocales
    jinja2
    lxml
    markdown
    markupsafe
    mock
    pytestCheckHook
    pandoc
    pillow
    pygments
    python-dateutil
    pythonOlder
    pytz
    rich
    pytest-xdist
    six
    typogrify
    unidecode
    # other python packages you want
  ];
  python-with-my-packages = python3.withPackages my-python-packages;
in
mkShell {
  buildInputs = [
    python-with-my-packages
  ];
}

Oui il est tout option, le plus sympa c'est que rien n'est installé sur ma machine, c'est dans un environnement virtuel. C'est comme si j'avais installé tous ces paquets mais je ne l'ai pas fait.

Au-delà de la partie sympa et excitante de la nouveauté, le truc c'est que je ne me sens pas à l'aise pour le moment pour deux choses, mettre en place un serveur, peut importe http ou mail ou juste un dlna, je sais toujours pas faire car il n'y a pas la configuration dans /etc mais elle se trouve à la place dans notre fichier central. L'autre c'est la création de paquets, ou simplement la maintenance de paquets, par exemple pelican est en 4.6.0, comment je fais pour faire le paquet en version 4.7.1?

Je serais prêt à lâcher Debian et openSUSE, tellement que Nixos me plaît, son fonctionnement, son utilisation, mais si je ne suis pas capable d'être autant autonome que sous ma Debian, bah je lâcherai la chose et c'est vraiment dommage.

Commencer la discussion: Venez écrire un commentaire dans le forum