Vava pourquoi tu veux spécialement tester nixOS ?
Manque de ressources côté développeurs et manque d’utilisateurs en desktop.
C'est triste...
(Coucou, je poste depuis NixOS, )
@nounoursheureux C'est une distribution vraiment différente de ce que j'ai vu jusqu'à présent (y compris avec BSD), et je suis vraiment curieux de voir ce que ça donne en pratique.
J'aime le fait que leur philosophie soit basée sur la programmation fonctionnelle. Au lieu d'avoir une configuration impérative du système (basiquement, toutes les commandes qui ont été exécutées dans tel ordre pour arriver à l'état actuel), on a une configuration déclaracive, avec un gestionnaire de paquets capable de reconstruire tout le système de façon déterministe.
Le gestionnaire de paquets (Nix) qui vient avec cette distribution (mais qu'on peut utiliser sur à peu près n'importe quel Unix) possède aussi des caractéristiques qui m'intéressent beaucoup en tant que développeur, comme la possibilité d'installer des paquets par utilisateur sans affecter la configuration globale, une gestion de profil utilisateur (j'ai une liste de softs dans mon profil dev Node.js, une autre liste de softs dans mon profil dev Python, etc.), et la possibilité de faire cohabiter plusieurs versions d'un même logiciel sur le système (ou par utilisateur, par profil).
Et ça permet de rendre la procédure de mise à jour plus fiable : les mises à jour sont installées en parallèle des versions existantes, et le switch final se résume à changer un lien symbolique ; si ça merde, c'est trivial de restaurer l'état précédent, et la procédure de mise à jour ne peut pas laisser le système dans un état inconsistant. En plus de ça, on a un menu Grub qui contient tout l'historique des build système, et on peut facilement revenir à une ancienne configuration si on a tout foutu en l'air dans la dernière mise à jour (y'a quand même un système pour supprimer l'historique de temps en temps pour ne pas consommer trop de place).
Ajoute à ça la possibilité de tester un environnement particulier dans une machine virtuelle ou dans un conteneur, et de gérer différents conteneurs de services avec le même type de configuration que le système principal. Et encore j'ai pas fait le tour, là je suis en train de baver sur le PDF qui décrit le principe de cette distribution : http://nixos.org/~eelco/pubs/nixos-jfp-final.pdf
D'un autre côté y'a certains points qui ne me plaisent pas trop, comme le fait qu'une installe basique de X comprenne en fait plein d'autres paquets (là j'ai entre autres ALSA que j'ai pas demandé, feh), j'ai aussi ntfs-3g qui sort de je ne sais où et pas mal d'autres systèmes de fichiers que j'ai pas explicitement demandés, les commandes iw* alors que j'ai pas demandé le support du WiFi, les additions VirtualBox automatiquement installées, etc.
Je verrai si y'a pas un truc à configurer quelque part pour avoir une installation de base plus restrictive, du genre comme les recommends/suggests à désactiver sous Debian.
Nom de dieu, je suis justement en train de voir de manière avancée la gestion des transactions en concurrence en Clojure, avec les différentes garanties d'atomicité et de restauration, alors quand je te lis sur cette distribution vava je suis en devgasm
Plus je vous lis moins je comprends l'intérêt des *BSD. Si on enlève l'aspect historique et le fait qu'il n'y ait pas de port de systemd; tout ce que vous faites avec et qui prend 3 plombes à mettre en oeuvre vous pourriez le faire simplement avec une Deb ou Gentoo.
Ce niveau de branlette intellectuelle me laisse pantois.
D'ailleurs, tu sais si comment cet arbre des modifications est stocké pour économiser de la place ? C'est pas très clair sur leur site.
Genre si chaque état est stocké à 100% à part dans ses dossiers ou si c'est stocké de manière purement fonctionnelle comme les structures de données immuables, avec une "identité" commune fixe et un ensemble d'états pour les versions qui viennent se greffer aux points modifiés de la structure "mère" ?
vava Bon ok tu m'as convaincu, je vais lui donner sa chance ~ ~
DuckSauce> Ça dépend de quel genre d’utilisateur tu es. Pour une utilisation serveur au sens large les BSD ont beaucoup d’atouts que n’a pas Linux. Déjà certaines technos intéressantes qu’on ne trouve pas sous Linux ou alors plus complexes à mettre en œuvre (quelques mots clefs : ZFS, HammerFS, PF, OpenSMTPd, vkernel, jail, etc.). Ce sont des systèmes très conservateurs donc tu es à peu près sûr que la façon de faire les choses ne va pas être chamboulée du jour au lendemain. Le système de base est séparé des applications tierces, donc tu as une base saine et rigoureusement auditée disjointe qui évolue uniquement à chaque montée de version de l’OS disjointe des applications « tout venant » moins critiques. Les communautés de développement sont ultra compétentes (c’est très motivant) et beaucoup plus « familiales » que Linux.
Pour une utilisation desktop, c’est plus discutable mais tu as grosso modo soit des gens qui utilisent déjà ça en serveur donc qui ont leurs habitudes et qui sont efficaces avec, soit des gens qui rejettent la frénésie des développements Linux et qui sont prêts à se prendre la tête quelques heures à installer, à apprendre chaque recoin de leur OS et (soyons honnêtes) à sacrifier quelques fonctionnalités pour avoir un système avec un développement lent et raisonné.
@Caletlog J'ai pas étudié ça en détail, mais j'ai cru comprendre qu'un logiciel dans une version particulière (identifié par un hash qui comprend le logiciel ainsi que ses dépendances et outils de compilation chacun dans une version bien particulière), était stocké qu'une seule fois (de la même façon qu'avec Git, un blob avec un hash donné sera stocké qu'une seul fois et référencé par des hard links).
Donc si j'ai 42 profils qui utilisent 89xn2vgcg1a445paapry3bv3fr789i2v-vim-7.4.131, tous utiliseront le même binaire.
Et à chaque mise à jour, les versions antérieures sont conservées, d'où l'intérêt de nix-collect-garbage pour supprimer les vieux paquets qui ne sont plus référencés par aucun paquet actif (avec option -d pour supprimer aussi les vieux paquets qui représentent ton système complet).
Chaque « build système » et chaque profil est en fait un paquet Nix ; ta configuration système est similaire au fichier de description d'un paquet classique, sauf que le paquet final représente ton système complet. Typiquement dans /nix/var/nix/profile, j'ai l'historique de mes builds `system-[0-9]+-link`, ainsi qu'un dossier `system` qui pointe vers la build actuelle (et c'est juste ce lien qui est modifié lorsqu'on switch la configuration système). Et chaque profil est en fait un lien symbolique vers /nix/store/{{hash}}-nixos-{{version}} (ils sont stockés comme n'importe quel paquet) - comme la configuration est différente, le hash est aussi différent.
Deux builds avec une configuration identique seront donc juste un lien symbolique vers un même paquet.
Et à l'intérieur d'une même build (je sais pas si c'est le cas pour les paquets classiques ou que pour la config système), les fichiers identiques sont stockés qu'une suele fois ; je regarde par exemple mon /etc/fstab qui n'a pas changé entre différentes builds, il est stocké qu'une seule fois dans /nix/store/{{hash}}-etc-file, et le /etc/fstab de chaque build pointe vers ce fichier.
https://github.com/NixOS/nixpkgs/blob/85fba5fdbda97c12ca0f992554a55d64cfedf365/nixos/modules/services/x11/desktop-managers/default.nix#L10-L12
C'est donc pour ça que feh était préinstallé.
https://github.com/NixOS/nixpkgs/blob/585983bc954d043d40a14b29c0bddca42bb9cdfb/nixos/modules/installer/tools/nixos-generate-config.pl#L235-L239
Et ça explique le fait que les additions VirtualBox soient installées automatiquement.
Je trouve ça plutôt sympa que la distro soit sur GitHub… vous connaissez déjà mon avis sur GitHub mais je dois dire que ça encourage (et facilite) pas mal les contributions.
Ouai, ça a l'air franchement sympa.
Leur système de stockage s'appuie donc sur les modes de stockage des structures immuables j'ai l'impression, c'est cool du coup.
+ http://debianfork.org/
J'ai vu ça sur l'IRC tout à l'heure. Ce serait cool que ce truc tienne debout, juste pour faire passer le message auprès des développeurs de Debian.
À mon avis ça mènera nulle part : pas de grands noms derrière tout ça, ce collectif de "vétérans" est composé d'on-ne-sait-pas-qui, et puis "on a pas le temps de contribuer activement au projet debian, mais on aura le temps d'en faire un fork complet", mouai
C'est clair que pour l'instant à part une page HTML je vois pas grand-chose. Mais bon putain, j'en suis à quelques semaines sous systemd/Debian maintenant, et je commence sérieusement à me dire que ce truc ne pourra JAMAIS convenir. Ni sur desktop ni sur serveur, Lennart aurait VRAIMENT dû s'arrêter à « on va rendre le boot plus rapide en gérant intelligemment les dépendances), il aurait quand même eu son quart d'heure de gloire si c'est ce qui compte pour lui, et on ne se serait pas tapés cette usine à gaz dégueulasse.
C'est vrai que systemd est insupportable.
Les bugs multiples on en parle?
Bon, si je ne poste pas d'ici 10min c'est que Debian Sid m'a explosé dans les mains (je viens de migrer)
Tu viens de migrer vers le (Debian) sud ? C'est plus chaud la bas, fait attention
J'ai envie de commencer The Witcher 1 mais j'ai peur qu'il me prenne trop de temps (chose que je n'ai pas) et que du coup j'arrive pas à suivre, accrocher, me plonger dedans
Qu'est ce que je fais ? J'attends d'avoir une véritable ouverture avant de me lancer ou j'y vais ?
Je vis déjà dans le Sud
+ayé amarche, rien de cassé. +ya un fix intéressant dans la dernière version du blob nvidia, reste à voir si ça correspond aux problèmes que je rencontre avec Firefox.