Préparez cette installation avant AP6. Nous resterons dans Livebook pendant l’essentiel de la séance, puis nous créerons une application dans un dossier de projet. Il faut donc pouvoir lancer Erlang/OTP, Elixir et Mix depuis votre terminal, et éditer des fichiers .ex dans VS Code.

Livebook Desktop embarque son propre environnement : réussir un calcul dans un notebook ne vérifie pas cette installation. Les commandes ci-dessous sont à saisir dans le terminal de votre ordinateur, sauf les essais explicitement indiqués dans IEx.

1. Installer Erlang/OTP et Elixir

Pour le cours, nous retenons Elixir 1.19.5 et Erlang/OTP 28. Les commandes ci-dessous fixent le correctif OTP à 28.4. Si vous disposez déjà d’Elixir 1.19 avec OTP 28, ou 1.20 avec OTP 28 ou 29, commencez directement par les vérifications : inutile d’installer une deuxième copie si elles passent.

La page officielle d’installation décrit les scripts employés ci-dessous. Elixir fournit aussi Mix, l’outil qui crée, compile et teste nos projets ; il n’y a pas de paquet Mix à chercher.

macOS et Linux Ubuntu

Ouvrez Terminal et exécutez ces lignes une par une. Le script télécharge les deux environnements dans votre dossier personnel.

curl -fsSO https://elixir-lang.org/install.sh
sh install.sh elixir@1.19.5 otp@28.4

Ajoutez ensuite ces deux lignes à la fin du fichier ~/.zshrc sur macOS (shell zsh), ou ~/.bashrc sous Ubuntu (shell bash). Vous pouvez ouvrir ce fichier avec VS Code ; créez-le s’il n’existe pas.

export PATH="$HOME/.elixir-install/installs/otp/28.4/bin:$PATH"
export PATH="$HOME/.elixir-install/installs/elixir/1.19.5-otp-28/bin:$PATH"

Fermez puis rouvrez le terminal. Ces lignes modifient le PATH, la liste des dossiers où le terminal cherche les commandes. Les conserver dans ce fichier évite de les retaper à chaque ouverture.

Sur une autre distribution Linux, suivez la rubrique correspondante de la page officielle, puis vérifiez les versions. Certains dépôts proposent un Elixir trop ancien ; dans ce cas, contactez-moi avant le cours avec la sortie de elixir --version.

Windows, dans PowerShell

Ouvrez PowerShell, puis exécutez :

curl.exe -fsSO https://elixir-lang.org/install.bat
.\install.bat elixir@1.19.5 otp@28.4

Pour rendre les commandes disponibles à chaque ouverture, cherchez « Modifier les variables d’environnement pour votre compte » dans le menu Démarrer. Dans les variables de votre utilisateur, modifiez Path et ajoutez ces deux entrées, sans effacer les entrées existantes :

%USERPROFILE%\.elixir-install\installs\otp\28.4\bin
%USERPROFILE%\.elixir-install\installs\elixir\1.19.5-otp-28\bin

Fermez toutes les fenêtres du terminal et de VS Code, puis rouvrez-les. Dans PowerShell, nous écrirons iex.bat, car iex y désigne déjà une commande de PowerShell. mix et elixir gardent leur nom habituel.

2. Vérifier dans un nouveau terminal

elixir --version
mix --version
erl -s erlang halt

Les deux premières commandes doivent annoncer Elixir et Mix, version 1.19.5 pour l’installation proposée. La dernière doit annoncer Erlang/OTP 28 puis revenir au terminal (29 si vous utilisez déjà Elixir 1.20 avec OTP 29). Elle fonctionne également dans PowerShell.

Créez maintenant un petit projet de vérification dans votre dossier de cours :

mix new check_install --sup
cd check_install
mix test

Mix crée notamment mix.exs, lib/ et test/. Les tests du projet neuf doivent se terminer avec 0 failures (ou tous les tests passed selon la version). Aucune bibliothèque externe n’est nécessaire pour cet essai. Gardez ce dossier pour vérifier l’éditeur à l’étape suivante.

Depuis check_install, démarrez IEx avec le projet :

iex -S mix

Sur PowerShell, utilisez à la place :

iex.bat -S mix

Dans l’invite iex>, saisissez les expressions suivantes, une à une :

CheckInstall.hello()
is_pid(Process.whereis(CheckInstall.Supervisor))
System.halt()

Les deux résultats attendus sont :world, puis true. La troisième expression quitte IEx. Nous expliquerons en AP6 ce qu’est ce superviseur ; pour le moment, ce résultat confirme que l’application créée par Mix démarre.

3. Configurer VS Code

Vérifiez d’abord git --version dans le terminal. Si la commande manque, installez Git pour votre système. Préparez aussi Hex, utilisé par les outils Elixir, en exécutant mix local.hex et en répondant oui à sa demande d’installation. Prévoyez une connexion pour le premier démarrage du serveur de langage.

  1. Dans les extensions de VS Code, installez ElixirLS: Elixir support and debugger, identifiant JakeBecker.elixir-ls.
  2. Si vous avez déjà un autre serveur de langage Elixir, désactivez-le pour ce projet afin de ne pas lancer deux serveurs sur les mêmes fichiers.
  3. Ouvrez le dossier check_install, celui qui contient mix.exs, avec « Fichier > Ouvrir un dossier ». Acceptez la confiance pour ce projet que vous venez de créer.
  4. Créez le fichier .vscode/settings.json dans ce dossier, avec ce contenu :
{
  "[elixir]": {
    "editor.defaultFormatter": "JakeBecker.elixir-ls",
    "editor.formatOnSave": true
  },
  "elixirLS.dialyzerEnabled": false
}

Le formatage s’applique à l’enregistrement des fichiers Elixir. Nous désactivons ici l’analyse Dialyzer, qui construit un cache assez long au premier lancement ; les erreurs de compilation et les tests restent disponibles. Cf. la documentation d’ElixirLS.

Ouvrez lib/check_install.ex, modifiez l’indentation d’une ligne, puis enregistrez : le formatage doit la remettre en place. Dans le terminal intégré de VS Code, relancez elixir --version et mix test. Vous avez ainsi vérifié que l’éditeur retrouve le même environnement que votre terminal.

Gram, une option si vous souhaitez changer d’éditeur

Gram est un éditeur issu de Zed, dont les fonctions d’IA ont été retirées. Vous pouvez l’utiliser pour le cours, mais VS Code reste le chemin le plus court si vous l’avez déjà configuré.

Le support Elixir de Gram passe par une extension. Son installation demande actuellement de compiler des éléments en Rust/Wasm ; ce n’est pas un simple téléchargement identique à celui de Zed. Si vous choisissez cette option, suivez la procédure officielle des extensions, avec Rust installé par rustup, puis utilisez Install From URL avec le dépôt de l’extension lié depuis la page Elixir. Gardez ElixirLS comme serveur de langage, celui activé par défaut.

Ouvrez ensuite check_install et vérifiez le formatage, les diagnostics et mix test, comme dans VS Code. Si la compilation de l’extension bloque, vous pouvez revenir à VS Code pour la séance. Les différences avec Zed sont décrites dans le guide de migration.

Si quelque chose bloque

SymptômePremier point à vérifier
elixir, erl ou mix est introuvableLes deux entrées du PATH, puis une nouvelle fenêtre de terminal.
Une ancienne version apparaîtSur macOS/Linux, command -v elixir ; sur Windows, where.exe elixir. Le premier chemin trouvé est celui utilisé.
iex -S mix échoue dans PowerShellUtilisez iex.bat -S mix.
Mix ne trouve pas de projetPlacez-vous dans check_install, là où se trouve mix.exs.
Le terminal fonctionne, mais pas ElixirLSRedémarrez complètement VS Code et consultez « Affichage > Sortie > ElixirLS ». Vérifiez Git, Hex et l’accès à GitHub et Hex.pm.

Les instructions de dépannage d’ElixirLS complètent ces vérifications. Pour toute question, vous pouvez me contacter par email avant AP6 : indiquez votre système, les versions affichées et le message d’erreur complet. L’objectif est d’arriver avec mix test qui passe, IEx qui démarre le projet et un éditeur qui formate les fichiers Elixir.