Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
nix [Le 19/01/2020, 12:21]
moths-art [Store complet]
nix [Le 01/05/2023, 18:11] (Version actuelle)
sputnick ajout des best practices
Ligne 4: Ligne 4:
 ====== Nix, le gestionnaire de paquets ====== ====== Nix, le gestionnaire de paquets ======
  
-**Nix** est un gestionnaire de paquets fonctionnel,​ il n'est pas liés à une distribution particulière,​ il est mutli-plateforme.+**Nix** est un gestionnaire de paquets fonctionnel,​ il n'est pas lié à une distribution particulière,​ il est multi-plateformes.
  
-Quel intérêt ​+Quels intérêts ​
-  - C'est un moyen efficace d’installer des paquets qui ne sont pas disponibles via le gestionnaire de paquets de sa distribution ; +  - C'est un moyen efficace d’installer des paquets qui ne sont pas disponibles via le gestionnaire de paquets de sa distribution. 
-  - On peut tester l’installation de programmes ou bibliothèques sans polluer son système ;​ **Nix** conserve même l’historique des installations et permet de revenir aux états antérieurs ; +  - On peut tester l’installation de programmes ou bibliothèques sans polluer son système ;​ **Nix** conserve même l’historique des installations et permet de revenir aux états antérieurs 
-  - **Nix** gère les paquets efficacement en calculant une somme de contrôle du paquet ainsi, quand deux utilisateurs installent une même version d’un paquet, c’est le même dossier d’installation qui est utilisé, ce partage est sans risque car le dossier est en lecture seule et ne sera jamais supprimé tant qu’un utilisateur y fait référence ; +  - **Nix** installe les logiciels en espace utilisateur ce qui veut dire qu'un soft (ou une version d'un soft) peut être disponible que pour une session utilisateur et la gestion des paquets ne nécessite pas de droits "super utilisateur"​. 
-  - Ce n’est pas un système de conteneurs ni de machines virtuelles, les logiciels installés par **Nix** sont exécutés directement par le système.+  - **Nix** gère les paquets efficacement en calculant une somme de contrôle du paquet ainsi, quand deux utilisateurs installent une même version d’un paquet, c’est le même dossier d’installation qui est utilisé, ce partage est sans risque car le dossier est en lecture seule et ne sera jamais supprimé tant qu’un utilisateur y fait référence. 
 +  - Ce n’est pas un système de conteneurs ni de machines virtuelles, les logiciels installés par **Nix** sont exécutés directement par le système. Ceci inclus des performances et une empreinte mémoire native.
   - **Nix** permet de créer des environnements virtuels. Par exemple, un développeur Python peut utiliser directement Nix pour créer des environnements spécifiques à chaque projet, avec les bibliothèques nécessaires. Pas besoin de passer par virtualenv, conda ou autre.   - **Nix** permet de créer des environnements virtuels. Par exemple, un développeur Python peut utiliser directement Nix pour créer des environnements spécifiques à chaque projet, avec les bibliothèques nécessaires. Pas besoin de passer par virtualenv, conda ou autre.
 +  - Avoir des builds **reproductibles** : si un paquet fonctionne sur une machine, il fonctionnera sur une autre sans adaptation du packaging.
 +  - **Nix** apporte la **fiabilité** : l’installation ou la mise à jour d’un paquet n’endommage pas les autres paquets. Il garantit qu’aucun package n’est incohérent lors d’une mise à niveau. Il est possible de revenir aux versions précédentes. De même, les paquets sont maintenus via des principes modernes de chaine d'​intégration : https://​hydra.nixos.org/​
 +  - **Nix est déclaratif** : Nix facilite le partage des environnements de développement et de construction pour les projets, quels que soient les langages de programmation et les outils utilisés.
 +- les softs sont pré-compilés pour votre machine (dans la plupart des cas) grâce à https://​cache.nixos.org/​
  
-Il stocke tous les paquets isolés les uns des autres dans un magasin de paquets. Cela permet que les nouvelles configurations n'​écrasent pas les anciennes et que plusieurs versions d'un paquet puissent coexister. ​+Il stocke tous les paquets isolés les uns des autres dans un magasin de paquets. Cela permet que les nouvelles configurations n'​écrasent pas les anciennes et que plusieurs versions d'un paquet puissent coexister.
  
 ===== Installation de Nix ===== ===== Installation de Nix =====
Ligne 19: Ligne 24:
  
 <code bash> <code bash>
-curl https://​nixos.org/​nix/​install ​| sh+sh <(curl -L https://​nixos.org/​nix/​install) --daemon
 echo ". $HOME/​.nix-profile/​etc/​profile.d/​nix.sh"​ >> ~/.bashrc echo ". $HOME/​.nix-profile/​etc/​profile.d/​nix.sh"​ >> ~/.bashrc
 source ~/.bashrc source ~/.bashrc
Ligne 25: Ligne 30:
  
  
-===== Installer et utiliser un paquet ===== +ajouter un canal (dépôt) de paquets :
- +
-ajouter un canal de paquets :+
  
 <code bash> <code bash>
-nix-channel --add https://​nixos.org/​channels/​nixos-19.09 nixpkgs+nix-channel --add https://​nixos.org/​channels/​nixos-22.11 nixpkgs
 nix-channel --update nix-channel --update
 </​code>​ </​code>​
  
-chercher et exécuter ​un logiciel :​ +Installer ​un logiciel ​dans l'​environnement utilisateur ​:
 <code bash> <code bash>
-nix search geany +nix-env -iA nixpkgs.geany
-... +
-nix run nixpkgs.geany -c geany+
 </​code>​ </​code>​
 +
 +Une fois l'​installation effectuée, la version de ''​geany''​ installée par Nix sera votre version par défaut.
 +
  
 ===== Avoir accès aux raccourcis Nix ===== ===== Avoir accès aux raccourcis Nix =====
Ligne 60: Ligne 63:
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * **(en)** [[https://​nixos.org | Site officiel]]  +  * **(en)** [[https://​nixos.org | Site officiel]] 
-  * **(en)** [[https://​nixos.wiki/​wiki/​Nix_Installation_Guide]]  +  * **(en)** [[https://​nixos.wiki/​wiki/​Nix_Installation_Guide]] 
-  * **(en)** [[wp>Nix package manager|Nix (gestionnaire de paquets)]]  +  * **(en)** [[wp>Nix package manager|Nix (gestionnaire de paquets)]] 
-  * * **(fr)** [[https://​nokomprendo.gitlab.io/​posts/​tuto_fonctionnel_43/​2019-12-23-fr-README.html]]+  * **(en)** [[https://​stop-using-nix-env.privatevoid.net/​|stop using nix env (best practices)]] 
 +  ​* **(fr)** [[https://​nokomprendo.gitlab.io/​posts/​tuto_fonctionnel_43/​2019-12-23-fr-README.html]] 
 +  * **(fr)** [[https://​www.adaltas.com/​fr/​2022/​02/​01/​nix-introduction/​|Intro à Nix]]
  
  • nix.1579432914.txt.gz
  • Dernière modification: Le 19/01/2020, 12:21
  • par moths-art