Charles-Édouard Coste

Faire simple, c'est compliqué. Mais c'est mon métier.

Devant la frénésie suscitée par mon dernier article, je me devais de répondre aux attentes des hordes de fans déchaînés… Voici donc le premier article du reste de ma vie sur Nix.

Nous avons déjà vu comment installer Nix sur votre distribution préférée. Maintenant, nous allons faire quelque chose avec. Oui je sais… c'est carrément dingue.

Étant donné que Nix est un gestionnaire de paquet, nous allons l'utiliser pour installer un programme.

Pour cela, nous avons à notre disposition la commande nix-env. Gardez bien en tête que lorsque vous serez des cadors de Nix, cette commande ne vous servira plus. Mais c'est celle qui se rapproche le plus de ce que vous connaissez, donc on va commencer par là.

Avant de continuer, jetons un œil à une variable d'environnement célèbre…

$ echo $PATH

/home/charly/.nix-profile/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Petit rappel pour les débutants : la variable d'environnement PATH donne la liste des dossiers dans lesquels votre shell va aller chercher les commandes que vous tapez. Ainsi, dans notre cas, si vous tapez hello, le shell va d'abord chercher cette commande dans le dossier /home/charly/.nix-profile/bin, puis si cette commande n'y est pas, il retentera sa chance avec /usr/local/sbin et ainsi de suite…

Il est donc important de comprendre trois choses. Tout d'abord, les programmes que vous allez installer avec Nix auront la priorité sur ceux de votre distribution, à moins que vous ne modifiiez le fichier ~/.nix-profile/etc/profile.d/nix.sh pour changer la priorité à votre convenance. La deuxième est que cela n'est valable que pour votre utilisateur car si vous vous connectez en tant que root, vous vous rendrez compte que la variable PATH est intacte. La troisième, c'est que si vous avez tiqué sur "modifiiez" en pensant que j'avais mis un "i" en trop, alors vous ne connaissez pas votre subjonctif présent.

Et maintenant, allons-y gaiement ! Tout d'abord, j'aimerais savoir ce que je peux installer comme paquet :

$ nix-env -qa

0x0-2018-06-24
1password-0.8.4
1password-1.1.1
2048-in-terminal-2017-11-29
20kly-1.4
2bwm-0.3
2fa-1.1.0
3270font-2.0.4
389-ds-base-1.3.9.1
3dpong-0.5
…

Oulala ! Y en a trop ! On peut pas chercher avec un nom ?

$ nix-env -qa blobby-volley

blobby-volley-1.0

(aide-mémoire : -qa pour "query" et "available")

Et comment j'installe ça maintenant ?

$ nix-env -i blobby-volley

Et comment je désinstalle ?

$ nix-env -e blobby-volley

(avec un "e" comme dans "uninstalleuuu", à moins que ce soit "erase")

Et si je veux tout désinstaller d'un coup ?

$ nix-env -e '*'

Et comment je mets à jour ?

$ nix-env -u blobby-volley

Quoi ? Chaque programme indépendamment ? Y a pas une commande qui met tout à jour d'un coup ?

$ nix-env -u

Et comment je lance la commande ?

$ blobby

Et comment on fait les bébés ?

$ go voir ta mère

Conclusion

Là vous êtes en train de vous dire que je me fous de votre gueule et qu'à ce train là, on va en avoir pour 50 articles avant de vraiment savoir quel est l'intérêt de Nix par rapport à ne serait-ce qu'un vulgaire npm…

Et attendre 15 saisons des saletés de dragons, ça ne vous a pas gêné hein ?! Ben alors, vous allez patienter… Non mais ! Soyez déjà heureux que je vous fasse pas nettoyer ma caisse pour apprendre les bons mouvements, petits scarabées. Entraînez-vous déjà avec ça, et après on verra.

Toutefois… Une dernière petite recommandation : évitez d'installer un programme que vous auriez déjà installé par le système de package de votre distribution. Car si ce programme est "statefull", vous pourriez vous retrouver avec deux versions différentes se disputant un cache ou une base de données, et cela peut causer des soucis.

Previous Post