Journal Flatpak et Nix

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
18
26
déc.
2019

Flatpak est un "système de construction et de déploiement d'applications de bureau sur Linux". C'est un outil assez similaire à Snap et à AppImage, les fameux "gestionnaires de paquets universels". Ces gestionnaires de paquets sont censés apporter deux avantages principaux :

  • permettre à un utilisateur normal d'installer des logiciels, qui ne sont pas forcément fournis par la logithèque de sa distribution;

  • permettre à un développeur de packager un logiciel facilement pour tout un ensemble de distributions Linux.

Il existe (…)

Journal Comprendre Go en 5 minutes, en Haskell

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
18
24
déc.
2019

D'après leur réputation, Go et Haskell sont des langages de programmation assez opposés : Go privilégie la simplicité, Haskell l'expressivité. Cependant ces deux langages ne sont pas si éloignés que cela. Plus exactement, les concepts de base de Go se retrouvent, de façon assez ressemblante, en Haskell.

Ce journal reprend, en Haskell, les exemples de code en Go de l'article Comprendre Go en 5 minutes. L'objectif n'est pas de présenter exhaustivement Go ou Haskell, ni de démontrer que l'un (…)

Journal Déployer une application web C++ sur Heroku avec Docker et Nix

Posté par  (site web personnel) . Licence CC By‑SA.
17
15
nov.
2018

Les services de plateforme (PaaS) comme Heroku permettent de déployer des applications web écrites dans des langages comme PHP, Ruby, Java… Cependant, déployer des applications C++ est plus compliqué (portabilité de l'interface binaire ABI, gestion des dépendances…). Ce post présente plusieurs solutions pour déployer des applications web C++ sur Heroku, en utilisant des images Docker et le gestionnaire de paquet Nix.

Voir aussi : code source - vidéo youtube - vidéo peertube

Exemple d'application web C++ avec

(…)

Journal Gérer son environnement utilisateur NixOS, avec Home-manager

Posté par  (site web personnel) . Licence CC By‑SA.
17
11
nov.
2019

Home-manager est un outil qui permet de gérer son environnement utilisateur : environnement de bureau, thème de fenêtre, thème d'icones, logiciels, paramètres des logiciels, services utilisateur, "dot files"…

Home-manager est prévu pour fonctionner sur la distribution linux NixOS et utilise le gestionnaire de paquets Nix.

code source - vidéo youtube - vidéo peertube

Présentation de home-manager

Pour faire simple, le but de home-manager est de fournir l'équivalent du fichier /etc/nixos/configuration.nix mais pour l'environnement utilisateur (au lieu de l'environnement système) (…)

Journal Cachix, un service de cache binaire basé sur Nix

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

Cachix permet de gérer facilement un cache personnel de paquets binaires. Concrètement, il s'agit d'un service de cloud et d'un logiciel client, le tout basé sur le gestionnaire de paquets Nix. Cachix propose différentes offres, dont une offre gratuite de 10 Go de stockage en accès public.

Quand on utilise la logithèque officielle de Nix, on télécharge des paquets binaires déjà compilés. Nix permet très facilement d'empaqueter des programmes/bibliothèques personnels ou de modifier les paquets officiels. Mais dans (…)

Journal Les rollbacks avec NixOS, ou comment casser son système

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
16
23
nov.
2020

Voir aussi : video youtube - video peertube - article de blog

Une distribution Linux "rolling release" permet de faire évoluer progressivement son système. Ceci permet d'avoir des logiciels plus à jour et surtout d'éviter les montées de version majeure.

Cependant, le rolling release augmente le risque de "mise-à-jour qui casse tout". Une solution classique à ce risque est de lire les news de mise-à-jour, faire un snapshot avec Timeshift, lancer la mise-à-jour après avoir tirer une carte chance et (…)

Python — partie 5 — Nix (et Guix)

Posté par  (site web personnel) . Édité par Oliver, Ysabeau 🧶 🧦, palm123, tisaac et gusterhack. Modéré par Benoît Sibaud. Licence CC By‑SA.
16
9
mai
2021
Python

Dans les précédentes dépêches, nous avons discuté de la popularité de Python, la fin de la maintenance de Python 2, les différentes variantes de Python, comment les faire cohabiter avec Py et Pipenv

Dans la continuité de la précédente dépêche, cette dépêche présente une autre approche pour faire cohabiter différentes versions de Python sur un même ordinateur : Nix. 🚀 🐍 💫 Le logo de Python entouré de petites icônes symbolisant la variété des domaines où s’applique Python, et à droite, un joyeux barbu se tient derrière un écran d’ordinateur qui affiche « partie = 5, "Conda Docker" \n print(partie) »

Journal Étendre ou modifier sa logithèque Nix avec les overlays

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

Le gestionnaire de paquets Nix est hautement personnalisable. Pour cela, il reprend le principe de la composition de fonctions : un paquet est en fait une fonction qui indique comment ajouter ou modifier un logiciel à partir d'un environnement logiciel d'entrée.

Ainsi, la logithèque Nix n'est qu'un ensemble de paquets qui peuvent être appliqués pour construire l'environnement logiciel final. Les overlays permettent de modifier les paquets de cet ensemble ou d'en ajouter de nouveaux.

vidéo youtube - vidéo peertube

Principe

(…)

Journal le style fonctionnel en vidéo (nix, nixos, haskell...), la suite...

Posté par  (site web personnel) . Licence CC By‑SA.
14
29
juin
2018

Bon bah, j'ai continué les vidéos du journal précédent (https://linuxfr.org/users/nokomprendo-3/journaux/le-style-fonctionnel-en-videos-nix-nixos-haskell).

Au passage, je suis passé sur framagit et j'ai ajouté un formatage plus propre des articles via hakyll (https://nokomprendo.frama.io/tuto_fonctionnel).

Les nouveaux sujets :
- Personnaliser une image Docker de NixOS pour de l'intégration continue
- Déployer un blog avec Hakyll, Gitlab-ci, Nix
- Nix, programmation et loi de Murphy
- Créer et partager des paquets Nix
- Archlinux vs Voidlinux
- Migrer un système NixOS (de (…)

Journal Configurer VSCode pour Haskell (Debian/Nix/NixOS)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
14
25
déc.
2019

Comme beaucoup de langages de programmation, Haskell n’a pas d’environnement de développement officiel ni même consensuel. Cependant, il existe différentes configurations classiques : Emacs + Intero/Dante, Vim + Ghcid, IntelliJ-Haskell…

Depuis quelque temps, l’éditeur de texte Visual Studio Code propose un environnement intéressant pour développer en Haskell, notamment couplé à HIE et à Stack. Cette configuration apporte les principales fonctionnalités d’un IDE : coloration syntaxique, navigation de code, compilation, documentation, auto‑complétion… Cependant, l’installation de ces outils n’est pas complètement triviale (…)

Journal Créer et partager des paquets Nix

Posté par  (site web personnel) . Licence CC By‑SA.
14
26
avr.
2018

Suite aux différents journaux sur la création de paquets, voici quelques astuces pour Nix/Nixos.

article original sur github

vidéo bonux sur youtube

Introduction

Comment créer un paquet nix pour gérer une dépendance dans un projet.
Comment gérer des paquets nix via un dépôt git.

Créer un paquet localement

On développe un projet et on a besoin d'une bibliothèque (par exemple, myhellolib).

  • écrire un fichier empaquetant la dépendance test_myhellolib1/myhellolib.nix :
{ stdenv, fetchurl, cmake }:

stdenv.mkDerivation 
(…)

Journal Installer Chromium sur Ubuntu via Nix

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

Ubuntu permet d'installer Chromium via les paquets Snap. Cette méthode ne fait cependant pas l'unanimité si bien que certains préfèrent installer le paquet Debian. Ce post présente une solution alternative : en utilisant Nix.

Voir aussi : video youtube - video peertube - article de blog

C'est quoi Nix ?

Nix est un gestionnaire de paquets, utilisable sur n'importe quelle distribution Linux. Il s'agit d'un outil très puissant qui permet de gérer des environnements logiciels, construire et déployer des (…)