Journal NixOS ou comment j'ai rendu mes machines interchangeables et ennuyeuses

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
58
10
nov.
2022

Salut,

Je voudrais te parler de NixOS, la distribution Linux déclarative. C'est solène% qui me l'a fait découvrir. Elle en a pas mal parlé sur son blog. Elle a même fait des trucs plutôt créatifs avec.

Je l'avais installé sur mon laptop secondaire il y a quelques mois à la place d'OpenBSD (déso / pas déso). C'est une machine que j'utilise assez rarement, et quasi exclusivement pour de la navigation web (youtube/rss dans la chambre). J'ai cherché à (…)

Nix 1.7, Nixpkgs, NixOS 14.04, Guix 0.6

Posté par  . Édité par BAud, ZeroHeure, palm123, Nÿco, Benoît Sibaud, claudex, patrick_g, Xavier Teyssier, olivierweb et sebas. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
55
4
mai
2014
Distribution

Quelques mots d'introduction :

  • Nix est un système de paquets
  • nixpkgs la collection de paquets associée
  • NixOS la distribution construite avec nix et nixpkgs
  • Guix est un dérivé GNU de Nix

Logo nixos Logo guix

Nix permet d'utiliser des paquets sources, comme sous Gentoo ou Arch, mais aussi des paquets binaires plus traditionnels. Comme presque tous les systèmes de gestion de paquets, il permet la gestion des dépendances entre paquets. Ses principes de fonctionnement originaux lui permettent d'implémenter de façon sûre des fonctionnalités souvent peu stables ou absentes des autres gestionnaires de paquets, notamment : installation de paquets dans le répertoire des utilisateurs, déploiement distribué, mélanges paquets sources et binaires et mises à jour réversibles. Il s'agit de la poursuite par la communauté du travail commencé par Eelco Dolstra dans sa thèse à la Technische Universiteit de Delft. La version 14.04 de NixOS est sortie le premier mai.

Cette dépêche présentera l'écosystème Nix, puis les nouveautés de nixpkgs et NixOS 14.04, de Nix 1.7 ainsi que Guix, le dérivé GNU de Nix.

Nix pour les développeurs

Posté par  (site web personnel) . Édité par claudex, Benoît Sibaud, bubar🦥, Davy Defaud, ZeroHeure et palm123. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
53
6
juil.
2017
Technologie

Nix est un gestionnaire de paquets « fonctionnel » (basé sur des fonctions, sans effet de bord). Cette caractéristique apporte des avantages indéniables, notamment de pouvoir mettre en place des environnements logiciels isolés, reproductibles et composables. Ceci peut être très utile à un administrateur système mais également à un développeur.

On trouve pas mal d’informations sur l’écosystème Nix et son utilisation, ainsi que des retours d’expérience des utilisateurs. En revanche, les documents à destination des développeurs sont moins nombreux et se limitent souvent à l’utilisation ou à la mise en place d’environnements de développement simples.

Cet article a pour objectif d’illustrer l’intérêt de Nix pour un développeur dans des cas simples et « un peu moins simples ». Pour cela, il se base sur un projet d’exemple en C++ et en Python, mais Nix peut également être utilisé pour d’autres langages. Je ne suis pas un expert en Nix, donc n’hésitez pas à proposer vos remarques ou améliorations dans les commentaires ou sur le dépôt GitHub du projet d’exemple.

NixOS 14.12, la distribution Linux sans effet de bord

Posté par  . Édité par Benoît Sibaud, Nÿco, BAud, palm123, Stéphane Aulery, Nils Ratusznik, esdeem, Nicolas Boulay et olivierweb. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
52
28
juil.
2015
Distribution

Le projet NixOS a sorti le 30 décembre 2014 une version de sa distribution Linux, la 14.12 ou « Caterpillar » de son petit nom. Cette distribution, « The Purely Functional Linux Distribution », est fondée sur le système de paquets Nix et la collection de paquets Nixpkgs. Nix et Nixpkgs sont utilisables avec d'autres systèmes : Linux, OS X, voire FreeBSD.

Logo nixos

Nix permet de gérer son système « sans effets de bord », ce qui permet notamment : des mises à jours réversibles, l'installation de paquets sans droits root, le déploiement distribué, les mélanges de paquets sources et binaires.

L’heure du test — épisode 1 — NixOS

Posté par  . Édité par Davy Defaud, palm123, galbolle, ZeroHeure, patrick_g, Nils Ratusznik, BAud, Benoît Sibaud, Parleur, Syvolc et rpnpif. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
50
28
avr.
2017
Distribution

Logo
L’heure du test est un rendez‐vous qui vous propose de nombreux tests et guides d’installation de distributions, étape par étape et en exposant leurs avantages et leurs inconvénients.

Aujourd’hui, on s’attaque à une distribution qui est un peu particulière, j’ai nommé NixOS !
Logo NixOS

Le gestionnaire de paquets Nix en version 2.0

Posté par  . Édité par nokomprendo, Guillaum, Olivier HUMBERT, Bruno Michel, Davy Defaud, Yves Bourguignon, palm123, ZeroHeure, Nÿco et Benoît Sibaud. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
48
3
avr.
2018
Gestion de versions

Nix est un gestionnaire de paquets fonctionnel dont la version 2.0 est sortie récemment. Parmi les nouveautés, on peut noter qu’une commande nix a été introduite pour uniformiser les différentes sous‐commandes (nix-build, nix-env, etc.) et avoir de meilleures options par défaut (pour la recherche de paquets notamment). Une bonne partie du reste du travail concerne des couches moins visibles mais néanmoins importantes : prise en charge de HTTP/2, amélioration de sécurité, etc.

Logo Nix

Nix peut être utilisé sur n’importe quelle distribution GNU/Linux en complément du gestionnaire de paquets habituel. Il existe également une distribution GNU/Linux articulée autour de Nix : NixOS. La version 18.03 de NixOS, prévue pour sortir très prochainement, inclura Nix 2.0.

Mise à jour : Nix 18.03 est sorti.

GNU Guix version Un‐Point‐Zéro

48
9
mai
2019
Distribution

Nous sommes très heureux d’annoncer la publication de GNU Guix version 1.0.0 !

GNU Guix est un gestionnaire de paquets transactionnel et une distribution GNU perfectionnée qui respecte la liberté des utilisateurs. Guix peut être utilisé avec n’importe quelle distribution utilisant le noyau Linux, tout comme il peut être utilisé comme système d’exploitation à part entière pour des machines ayant une architecture i686, x86-64, ARMv7 ou AArch64.

En plus des fonctionnalités habituelles pour gérer des paquets, Guix permet des mises à jours et retours en arrière transactionnels, une gestion des paquets qui ne nécessite pas de droits privilégiés, des profils pour chaque utilisateur et une gestion automatique de la mémoire.

Lorsque Guix est utilisé comme une distribution GNU/Linux autonome, il permet la gestion de la configuration du système d’exploitation par une approche déclarative et sans état. Guix est extrêmement personnalisable et bidouillable via Guile qui est une implémentation du langage Scheme avec quelques extensions.

La publication fournit des images d’installation ISO 9660, une image pour machine virtuelle et des archives tar.xz pour installer le gestionnaire de paquets sur votre distribution GNU/Linux à partir des sources ou des binaires. Les utilisateurs de Guix peuvent mettre à jour en lançant guix pull.

La suite de la dépêche est une traduction de l’annonce officielle. Cette traduction n’a pas été faite par l’équipe de Guix, le « nous » utilisé dans la dépêche renvoie à l’équipe Guix, pas aux traducteurs.

Développement Web frontend en Haskell, Elm et Purescript

Posté par  (site web personnel) . Édité par Benoît Sibaud, Davy Defaud et palm123. Modéré par Benoît Sibaud. Licence CC By‑SA.
46
19
août
2018
Programmation fonctionnelle

Actuellement, le développement Web côté client (frontend) est très souvent réalisé en JavaScript ou dans des langages dérivés comme TypeScript. Il existe cependant d’autres outils intéressants, basés sur des langages de programmation fonctionnelle, qui permettent notamment d’éviter de nombreuses erreurs lors de l’exécution sur le navigateur.

L’objectif de cette dépêche est de rappeler quelques généralités sur le développement Web frontend, et de présenter les outils Elm, Purescript, Miso et Reflex, à partir d’un exemple d’application (galerie d’images fournie via une API Web).

Attention : ceci n’est pas une étude rigoureuse et avancée mais juste un petit retour de petite expérience.

Voir également le dépôt de code de l’exemple et une présentation en vidéo.

Journal le "style fonctionnel" en vidéos (Nix, NixOS, Haskell)

Posté par  (site web personnel) . Licence CC By‑SA.
43
8
jan.
2018

Salut

Si ça intéresse quelqu'un, j'ai fait quelques vidéos sans prétention sur l'utilisation de Nix/NixOS et la programmation en Haskell. Pour l'instant, il n'y en a qu'une dizaine; je pense en faire d'autres plus tard mais… plus tard.

Les vidéos : https://www.youtube.com/watch?v=i6s-G_Hh3s4&list=PLe8vnuC2T7iGE3w_d-MCHw5mLzRAMiCM9

Les résumés + codes : https://github.com/nokomprendo/tuto_fonctionnel

Les sujets des vidéos :
01 : Installation de NixOS
02 : Gestion de paquets avec Nix
03 : Installation de Nix sur Debian
04 : Utilisation des canaux avec Nix/NixOS
05 (…)

Guix : un outil pour les remplacer tous

Posté par  . Édité par palm123, Benoît Sibaud et Davy Defaud. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
42
19
jan.
2020
Distribution

« GNU Guix est un gestionnaire de paquets pour GNU. Il est inspiré par le gestionnaire de paquets Nix, son principal apport est l’Interface de programmation GNU Guile et sa spécialisation dans la fourniture de logiciels libres. Au mardi 31 décembre 2019, GNU Guix permet d’installer 11 174 logiciels. » (Wikipédia)

Dans le journal dont est tirée cette dépêche, Andréas Livet nous raconte sa découverte de Guix.

Journal Guix : un outil pour les remplacer tous

42
18
jan.
2020
Ce journal a été promu en dépêche : Guix : un outil pour les remplacer tous.

Introduction

Je suis tombé très récemment sur une dépêche LinuxFR annonçant la sortie de la version 1.0 du gestionnaire de paquet Gnu Guix et dans la foulée de la distribution GuixSD et j'ai littéralement pris une claque !

Comme me l'a fait remarquer quelqu'un dans les commentaires, le projet n'est pas tout jeune (7 ans de mémoire), mais c'est passé à travers les mailles de mon filet de veille techno tout ce temps.

Je compte bien rattraper le retard (…)

LinuxFr.org : rétrospective des dépêches et journaux 2014

40
29
déc.
2014
LinuxFr.org

Basé sur les dépêches et journaux les mieux notés par nos visiteurs, voici un petit retour sur l'année 2014 sur LinuxFr.org.

Mentions particulières

La dépêche collaborative sur le noyau Linux a remporté un grand succès tout au long de l'année, avec les diverses versions parues : 3.13, 3.14, 3.15, 3.16, 3.17 et 3.18.

La saga Je créé mon jeu vidéo de rewind a placé ses 6 épisodes de l'année dans la sélection (fiche de lecture de « L'Art du game design » par Jesse Schell, techniques de C++11 appliquées au système à entités, génération procédurale de carte (partie 1), génération procédurale de carte (partie 2), interfaces physiques et graphiques et un an, premier bilan ), et a fêté son premier anniversaire.

On notera aussi d'autres sujets régulièrement traités, comme Firefox (28, 29, 30, 31, 32, 33, 34, Firefox en GTK3, et côté Firefox OS un avis et un test de création de jeu), rust (0.9, 0.10, 0.11, 0.12) ou systemd (là y en a vraiment trop pour les citer tous).

Gestion de paquets évoluée avec Nix : cachix, overlays et home‑manager

Posté par  (site web personnel) . Édité par MmeQuignon, Davy Defaud, ZeroHeure, Guillaum et palm123. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
39
25
nov.
2019
Administration système

Nix est un gestionnaire de paquets dont les débuts remontent à 2003. Il a pour but de rendre la gestion de paquets fiable, reproductible et personnalisable. Il permet notamment de faire des mises à jour atomiques, d’annuler des mises à jour, d’installer des multiples versions d’un même paquet, de définir précisémment des environnements logiciels… Il peut être installé sur n’importe quelle distribution GNU/Linux et sur macOS. Enfin, Nix a également inspiré un projet assez similaire : GNU Guix.

De nombreux outils ont été développés sur la base de Nix : la logithèque Nixpkgs, la distribution GNU/Linux NixOS, l’outil de déploiement de machines Nixops, le système de construction et de cache de paquets binaires Hydra, l’outil de construction d’images Docker Docker Tools, etc.

Cette dépêche présente trois outils très pratiques pour gérer son environnement utilisateur : un service de cache de paquets binaires (Cachix), un outil de personnalisation de la logithèque (Overlays) et un outil de configuration de l’environnement utilisateur (home‑manager).

gSpeech passe en 0.10

Posté par  . Édité par tisaac, palm123, Xavier Teyssier, Davy Defaud et claudex. Modéré par Davy Defaud. Licence CC By‑SA.
38
15
déc.
2020
Son

gSpeech est un petit utilitaire permettant la synthèse vocale sur GNU/Linux. Cette dépêche retrace les évolutions depuis la version 0.8 et esquisse des évolutions possibles pour le futur.

Quelques cadriciels Web C++ (2/2)

Posté par  (site web personnel) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, bubar🦥, claudex et palm123. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
38
12
déc.
2018
C et C++

Actuellement, il existe de nombreux langages et cadriciels intéressants pour le développement Web back‐end. Dans ce domaine, le C++ n’est pas le langage le plus à la mode, mais il possède cependant des atouts intéressants. En effet, le C++ possède de nombreuses bibliothèques (dont des cadriciels Web), il est réputé pour ses performances et, enfin, ses dernières normes le rendent plus agréable à utiliser.

L’objectif de cet article est de donner un aperçu des outils C++ disponibles pour le développement Web back‐end, à partir d’un exemple d’application. Les codes sources présentés ici sont disponibles sur ce dépôt Git. Les différents cadriciels utilisés sont résumés en annexe (partie 2). Enfin, une liste de bibliothèques C++ est disponible sur Awesome C++.

Partie 2 : les cadriciels Web.