Aperçu de NixOS en desktop

Rédigé par uTux - - 4 commentaires

Il y a un peu plus de 2 ans j'ai parlé de NixOS, distribution Linux atypique dans le sens où sa configuration se fait de manière déclarative à un unique emplacement.

NixOS logo

Mon ordinateur pro et ma machine gaming sont sous Windows, j'utilise donc très souvent des machines virtuelles Linux pour pouvoir travailler. Habituellement j'utilise Virtualbox + Debian + Mate, mais j'ai décidé d'expérimenter NixOS. Alors oui je sais qu'une machine virtuelle n'est pas représentative d'un cas d'usage réel, mais ça permet de se faire une première idée.

Installation

J'ai installé NixOS avec la configuration suivante:

# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Use the GRUB 2 boot loader.
  boot.loader.grub.enable = true;
  boot.loader.grub.version = 2;
  # Define on which hard drive you want to install Grub.
  boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only

  # Networking
  networking.hostName = "nixos"; # Define your hostname.
  networking.networkmanager.enable = true;

  # Select internationalisation properties.
  i18n = {
    consoleFont = "Lat2-Terminus16";
    consoleKeyMap = "fr";
    defaultLocale = "fr_FR.UTF-8";
  };

  # Set your time zone.
  time.timeZone = "Europe/Paris";

  # Repositories
  nixpkgs.config.allowUnfree = true;

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
    ansible
    dnsutils
    firefox-bin
    gimp
    git
    htop
    keepassxc
    libreoffice
    networkmanagerapplet
    parcellite
    p7zip
    sudo
    syncthing
    syncthing-gtk
    thunderbird-bin
    tree
    unzip
    vim
    vscode
    xarchiver
  ];

  # Enable CUPS to print documents.
  services.printing.enable = true;

  # Enable sound.
  sound.enable = true;
  hardware.pulseaudio.enable = true;

  # Mate
  services.xserver = {
    enable = true;
    layout = "fr";
    xkbOptions = "eurosign:e";
    desktopManager = {
      default = "mate";
      xterm.enable = false;
      mate.enable = true;
    };
  };

  # Docker
  virtualisation.docker.enable = true;
  
  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.utux = {
    isNormalUser = true;
    extraGroups = [ "wheel" "networkmanager" "docker" ];
  };

  # Nix Garbage Collector
  nix.gc = {
    automatic = true;
    dates = "weekly";
    options = "--delete-older-than 30d";
  };

  # This value determines the NixOS release with which your system is to be
  # compatible, in order to avoid breaking some software such as database
  # servers. You should change this only after NixOS release notes say you
  # should.
  system.stateVersion = "19.09"; # Did you read the comment?
  system.autoUpgrade.enable = true;

}

Environnement desktop

NixOS Mate

La gestion centralisée de la configuration s'applique au système, mais pas au $HOME de l'utilisateur. Les raccourcis, les thèmes de bureau, les profils se gèrent "à la main", ce qui m'amène à penser que NixOS perd un peu d'intérêt en usage desktop. Cependant, ce point pourrait bientôt changer avec Home-manager.

Lors de la rédaction de cet article, la version de Mate est la 1.22.1 donc très récente, un bon point. Dans la liste des paquets installés, notez firefox-bin et thunderbird-bin. Couplés à l'activation du repo unfree, cela permet d'installer les versions à jour et upstream. Les paquets firefox et thunderbird sont des versions ESR dépourvues du branding de Mozilla, un peu comme Iceweasel et Icedove pour Debian il y a quelques années.

La version de Keepassx fournie par Nix (0.4.4) est trop vieille pour être utilisable avec le format .kdbx, j'ai donc du installer keepassxc à la place. Vscode est disponible lui aussi grâce au repo unfree.

Python...

Globalement je retrouve donc mon environnement et mes applications favorites, mais je dois quand même parler de Python. Sur Debian, j'utilise généralement pip pour installer une version récente de Ansible et Molecule, mais sur NixOS je n'ai simplement pas compris comment ça marche :/ Il y a pourtant une documentation dédiée à Python mais elle a tendance à ne pas situer correctement les contextes ou ne pas donner assez d'exemples. Donc pas de pip pour le moment, j'ai utilisé le paquet NixOS de Ansible.

Performances

En ce qui me concerne, l'utilisation du bureau Mate dans Virtualbox sur NixOS n'est pas très fluide :/ que ce soit l'ouverture d'un onglet, le déplacement d'un fenêtre, le lancement d'un logiciel, tout accuse de saccades et de lags. Debian s'en sort mieux sur ce point, à configuration presque identique (2 vspus, 2Go de ram, vboxsvga, 32Mo vram), mais cette dernière utilise Mate 1.20.4 et pas 1.22.1.

Lorsque j'ai fait des tests sur une machine peu puissante, j'ai remarqué que nixos-rebuild arrive à mettre à genoux le système et les autres VMs, à cause des écritures sur le disque. Et à propos du disque, il faut parler de l'utilisation du stockage. Par nature, NixOS garde plusieurs versions de la configuration (overlays) et des paquets installés, pensez à des snapshots, donc on se doute que l'espace utilisé est important, très important. On peut facilement consommer 30 Go après quelques semaines, ce qui m'amène au point suivant.

Penser au nettoyage (garbage collector)

Heureusement il existe le Garbage collector qu'il faut régulièrement lancer en root:

[utux@nixos:~]$ sudo nix-collect-garbage -d
[...]
deleting '/nix/store/39s914agmm045fv7l3lz81zcvw86m3vb-xsltml_2.1.2.zip.drv'
deleting '/nix/store/5vy6k04dhrwn0951z7dnpkqyxp3r7ws0-jasper-2.0.16-bin'
deleting '/nix/store/p5c18w2cksfxw748d4f8l31rlfk8z1vg-font-adobe-100dpi-1.0.3'
deleting '/nix/store/mny4fywzpgb2yi54a0vz97f5kxlb8932-unit-systemd-modules-load.service.drv'
deleting '/nix/store/xbl8wj6293nfw3vziwqd5xmhrk5gdq6b-rand_hc-0.1.0.tar.gz.drv'
deleting '/nix/store/trash'
deleting unused links...
note: currently hard linking saves -0.00 MiB
8134 store paths deleted, 11574.19 MiB freed

Dans l'exemple ci-dessus, le système a nettoyé pas loin de 11,6 Go de paquets inutiles ! Il est possible d'automatiser ce nettoyage.

Documentation

NixOS a un manuel très détaillé et très instructif. On trouve aussi beaucoup d'informations sur des fils reddit et github. Il est tout de même fréquent de devoir aller lire le code pour savoir comment se configurer un logiciel pour NixOS, ce qui est intimidant au début mais on s'habitue.

Conclusion

Hé hé, un test ou un aperçu d'une distribution est un exercice que je n'ai pas fait depuis longtemps. Je vous encourage à tester NixOS, sur serveur ou en desktop. Cette distribution n'est pas comme toutes les autres que vous connaissez et elle vous plaira particulièrement si vous faites du devops et que vous cherchez une solution pour versionner les configurations de vos bécanes.

Je dois tout de même avouer que l'utilisation desktop est un peu laborieuse, surtout à cause des mauvaises performances dans Virtualbox (qui font que je reviens souvent à ma Debian) mais aussi à l'absence de gestion centralisée des $HOME (pour cela je testerai Home-manager.).

Utiliser NixOS met un peu de piment dans ma vie de Linuxien trop habitué à la Debian family et à la Red Hat family :)

Vivre avec MATE

Rédigé par uTux - - 10 commentaires

Je lis parfois que l'environnement de bureau MATE va mourir parce qu'on ne peut pas faire vivre indéfiniment une vieille techno et parce qu'en face il y a KDE, GNOME et Cinamon qui sont beaucoup plus modernes, etc etc. Mais d'où vient cette idée ? Le projet est toujours vivant et si on en croit les notes de version de la 1.18, le portage vers GTK3 a même été terminé. Et puis qu'y a-t-il besoin de moderniser ? MATE est un fork de GNOME2 donc 15 ans d'expérience et de peaufinage, ça tourne au poil et il ne manque vraiment pas grand chose. Allez en cherchant on va dire que MATE supporte mal le hidpi mais je n'en ai pas besoin.

Après 11 ans d'utilisation de Linux les bureaux qui réinventent la roue sans arrêt me laissent de marbre. Regardons ce qu'on a en face de MATE :

  • GNOME3 et ses utilisateurs qui se masturbent sur les nouvelles fonctionnalités à chaque version même s'il ne s'agit que de réimplémentation de choses qui ont été supprimées avant parce que les développeurs ont décidé que c'était mieux pour vous.
  • KDE qui repart de zéro presque tous les ans mais subit les mêmes tares, qui considère que LTS = 1 an et qui s'en-tête à coder des milliers de logiciels que personne n'utilise : KMail, KOffice, Konqueror et la liste pourrait s'allonger.
  • LXDE déclaré mort au profil de LXQT. Sauf que LXQT c'est vraiment pas stable ni même proposé sur toutes les distributions contrairement à LXDE. C'est un environnement moins austère qu'il n'y parait et il constitue une bonne solution de secours quand même Xfce se révèle trop lourd pour votre machine.
  • Xfce dont on annonce la mort chaque année mais qui vit toujours. Il constitue une excellente alternative à MATE même si je regrette un peu le manque d'homogénéité des logiciels. Xubuntu est l'une des meilleures distributions desktop, à mon sens.

Ayant fait le tour des environnements j'en reviens toujours à MATE, Xfce et LXDE que je trouve stables, efficaces et léger. Leur ancienneté ne constitue pas une dette technique, un poids dont on essaie de se débarrasser, ils sont au contraire une solide base pour tous les vieux cons comme moi.

Pense-bête : ubuntu-mate 16.10 + firefox + start page

Rédigé par uTux - - Aucun commentaire

On ne peut pas changer de page de démarrage sur Firefox depuis Ubuntu-Mate 16.10, c'est con, et il y a un rapport de bug ouvert qui n'a pas l'air d'intéresser grand monde :/

Voici ma solution custom :

$ sudo rm -r /usr/lib/firefox/defaults

C'est un peu sale mais ça ne pète ni Firefox ni votre profil. Mais en cas de mise à jour du paquet ubuntu-mate-default-settings il risque de revenir. Espérons que ce bug sera corrigé en amont.

EDIT : Autre solution, qui a l'air un peu plus propre, source :

$ sudo echo "" > /usr/lib/firefox/ubuntumate.cfg

MATE c'est bien - Episode 2

Rédigé par uTux - - 6 commentaires

Dans cet article j'expliquais avoir adopté MATE car il est toujours vivant et j'adore l'ergonomie façon GNOME 2. Je m'étais calé sur Ubuntu MATE mais j'ai changé, car Ubuntu reste Ubuntu, c'est à dire que même si on a affaire à une LTS, c'est à dire une version phare bénéficiant de plus d'attention, on trouve toujours de nombreux petits bugs et défauts qui se révèlent pénibles une fois accumulés. Ubuntu c'est bien sur les serveurs, en desktop beaucoup moins, l'obsession de Canonical à ne pas vouloir repousser les dates de sortie pour peaufiner leur produit y est sûrement pour quelque chose.

J'ai donc commencé par installer Debian Jessie, l'unique, la référence en terme de stabilité. Malheureusement j'ai rencontré quelques désagréments, pas vraiment dus à Debian, mais à l'environnement matériel et logiciel trop récents : pas de défilement à deux doigts sur le touchpad (résolu en installant le kernel des backports), version de qt5 trop vieille pour installer le client seafile (contourné en utilisant la version 5.1.0 de ce dernier), difficultés à faire fonctionner Virtualbox (apparemment du à l'usage des backports). J'ai fait un essai en Debian Testing, mais je n'avais plus de son, plus de Virtualbox du tout, bref pas de chance. J'aurais pu prendre le temps de résoudre ces problèmes mais à vrai dire je mange déjà du Debian desktop et serveur au boulot, j'ai donc préféré essayer une autre distribution.

J'ai installé Fedora 24 MATE et j'ai été agréablement surpris. Je suis familier avec Fedora pour l'avoir utilisé pas mal de temps et cette distribution combine à mon sens trois points forts : des logiciels à jour, stables, et vanilla. Ses deux seuls défaut sont peut-être d'une part de trop s'occuper de GNOME3 au détriment des autres bureaux (ce qui commençait à se ressentir sur le spin KDE lorsque j'ai changé de distribution) et d'autre part le faible nombre de logiciels packagés ce qui oblige à utiliser les dépôts additionnels rpmfusion. Ces dépôts sont plutôt stables, mais il faut s'attendre à des surprises lors des mises à jour de kernel (par exemple avec les modules Virtualbox). Cependant Fedora a l'excuse de ne pas s'adresser aux débutants, ces petits défauts dus à l’aspect semi-rolling release sont donc peu gênants au final.

Capture d'écran tirée du LiveDVD.

Côté desktop MATE on a droit à la version 1.14.1, la dernière à l'heure où j'écris ce billet, très épurée, bien implémentée et dépourvue de bugs pour le moment. Fedora a remplacé yum par dnf, que je n'aimais pas beaucoup lors de mes tests en machine virtuelle (lent) mais qui se révèle fonctionnel.

Fedora 24 MATE était une curiosité, j'en ai finalement fait ma distribution du moment. Et bien sûr, MATE c'est toujours bien, mangez-en.

MATE c'est bien

Rédigé par uTux - - 11 commentaires

GNOME2 fut mon premier et seul véritable amour en matière de desktop Linux. C'est l'aboutissement de plus de 10 ans de développement, un ensemble cohérent et stable, simple et intuitif. Ce n'est pas une copie de l'interface de Windows mais ce n'en est pas non plus éloigné ce qui fait qu'on trouve rapidement nos repères. De plus il y a des thèmes de bureau jolis avec beaucoup d'éléments personnalisables.

Mais il a fallu que la catastrophe GNOME3 arrive, un bureau qui prend soin de déconstruire tout ce qui a été accompli avec GNOME2, comme si tout était calculé pour tromper et perdre les utilisateurs en se basant sur leurs habitudes. Par exemple il a fallu harceler les développeurs de GNOME au fil de plusieurs versions pour avoir enfin un bouton d’extinction. C'est con mais quand on se retrouve à chercher pendant des heures comment éteindre l'ordinateur, on se pose des questions sur l'avenir de Linux sur le desktop.

Après un passage sur KDE qui a fini par me lasser à cause de sa lourdeur visuelle et de ses mini bugs qui une fois mis bout à bout se révèlent pénibles, je me suis stabilisé pendant un moment sur Xfce. Pourquoi ? Parce qu'au fond ce n'est pas si éloigné de GNOME2 même si c'est moins bien car le rythme de développement est lent et l'ensemble manque de cohérence. Pourquoi est-ce que je n'ai jamais essayé MATE ? Parce que je ne pensais pas que le projet persisterait longtemps. Mais en fait si, le projet vit et un portage vers GTK3 est même en cours. Et il est proposé dans beaucoup de distributions, plus que Unity d'ailleurs.

Après 2 ans d'utilisation de Manjaro Xfce, poussé par le besoin de réinstaller mon OS afin d'activer le chiffrement et l'envie de tester autre chose, j'ai installé Ubuntu Mate. Et c'est drôle car ça me rappelle vraiment les anciennes versions de Ubuntu, celles avec GNOME2 et ça me file même un coup de vieux. La distribution est plutôt réussie puisque fournie avec un minimum de logiciels c'est à dire sans excès comme Manjaro par exemple qui embarque Steam sans que l'on sache réellement pourquoi.

Capture d'écran tirée du site officiel.

Utiliser MATE c'est retrouver l'ergonomie de GNOME2, c'est un retour aux sources que j'apprécie beaucoup. Les desktop qui demandent un Core i7 avec 8GB de RAM et une GTX980Ti pour afficher l'animation d'un menu sont une plaie tout comme ceux qui essaient sans cesse de réinventer la roue en s'inspirant plus ou moins de l'ergonomie des tablettes en pensant que ça va être "cool" sur desktop. Un bureau ne devrait pas demander beaucoup de ressources ni prendre de la place à l'écran parce qu'après tout on s'en sert pour lancer des applications et manipuler des fenêtres.

Si vous aussi vous êtes un vieux con qui trouve que "c'était mieux avant" essayez MATE.

Fil RSS des articles de ce mot clé