···11+---
22+date: 2025-12-19
33+language: fr
44+title: Mise en place
55+tags:
66+ - linux
77+ - tools
88+draft: true
99+---
1010+1111+[//]: # (TODO image de couverture)
1212+1313+J'ai découvert Mise par deux canaux :
1414+1515+* le support par Clever Cloud (plutôt en tant que package manager donc), avec en particulier leur type d'image "Linux"
1616+1717+[//]: # (TODO remettre le lien)
1818+* le calendrier de l'avent de Siegfried Erhet, avec une approche de DevTool
1919+2020+Étant utilisateur de `direnv` depuis plusieurs années, je suis habitué à travailler dans mon shell.
2121+Direnv souffre par contre de plusieurs défauts : il ne peut pas gérer d'alias et se configure uniquement avec du scripting shell.
2222+2323+Aujourd'hui, je teste l'outil "Mise", pour voir dans quelle mesure cet outil peut venir enrichir mon workflow de dev.
2424+2525+<!--more-->
2626+2727+## Mise en place
2828+2929+Mise en place est un outil développé en Rust, ce qui promet de bonnes performances et de la stabilité.
3030+3131+Il propose 3 types d'usage :
3232+3333+* gestionnaire de packages (un peu comme `asdf`)
3434+* gestionnaire de variables d'environnement (exactement comme `direnv` donc)
3535+* exécution de tâches (comme on pourrait le faire avec `make`, `task` ou `just`)
3636+3737+Il se veut aussi extensible avec la possibilité d'utiliser ou d'implémenter des plugins.
3838+3939+## L'installation
4040+4141+L'installation est bien documentée sur le site web : https://mise.jdx.dev/installing-mise.html
4242+4343+Sur mes postes Linux, j'ai suivi la procédure d'installation avec `apt` :
4444+4545+```shell
4646+curl -fSs https://mise.jdx.dev/gpg-key.pub | sudo tee /etc/apt/keyrings/mise-archive-keyring.pub 1> /dev/null
4747+echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.pub arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list
4848+sudo apt update -y
4949+sudo apt install -y mise
5050+```
5151+5252+Une fois l'installation terminée, la commande `mise` est disponible dans mon shell :
5353+5454+```shell
5555+mise --version
5656+ _ __
5757+ ____ ___ (_)_______ ___ ____ ____ / /___ _________
5858+ / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
5959+ / / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/
6060+/_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/
6161+ /_/ by @jdx
6262+2025.12.10 linux-x64 (2025-12-16)
6363+```
6464+6565+Une dernière étape dans la configuration est importante : la configuration du shell, afin que le shell appelle la commande `mise` lors du changement de répertoires.
6666+6767+Cette opération se fait en éditant le fichier de configuration de votre shell : `~/.bashrc` ou `~/.zshrc` par exemple.
6868+6969+Pour Zsh que j'utilise, il faut alors simplement ajouter la ligne suivante dans le fichier `~/.zshrc` :
7070+7171+```shell
7272+eval "$(mise activate zsh)"
7373+```
7474+7575+Une fois ces opérations faites, il suffit donc de redémarrer votre shell pour que la configuration soit prise en compte.
7676+7777+## Les devtools
7878+7979+Quand je switche entre mes projets, je switche aussi souvent de stack d'outillage, que ce soit la version de Java, de Node, ou d'outils divers (comme Hugo que j'utilise sur ce site).
8080+8181+Pour les outils les plus courants, les langages de programmation principalement, mise dispose d'un plugin _core tools_ qui supporte leur configuration et activation automatique.
8282+Pour les autres outils ou packages, _mise_ utilise un ou plusieurs backends (_asdf_ en fait partie) qui permettent l'installation sans avoir rien à configurer en plus. Les outils disponibles peuvent être listés avec la commande `mise registry` :
8383+8484+```shell
8585+$ mise registry
8686+```
8787+8888+8989+---
9090+9191+La prochaine publication est prévue autour du 🗓️
9292+9393+Photo de couverture par sur