# Configuration Linux

[Retour au Jour 0](README.md)

## Prérequis

Tu as besoin de **Node.js v18 ou supérieur** et de **npm**.

## Étape 1 : installer Node.js

### Option A : via la page de téléchargement nodejs.org avec fnm (recommandé)

**fnm** (Fast Node Manager) est officiellement recommandé par Node.js. Il est rapide, léger, et te permet de changer facilement de version Node si besoin plus tard.

1. Ouvre ton navigateur et va sur [nodejs.org/en/download](https://nodejs.org/en/download).

2. Tu verras une ligne de menus déroulants indiquant : **"Get Node.js® vXX.XX.X (LTS) for __ using __ with __"**. Règle les menus comme suit :

   | Menu | Sélection |
   |------|-----------|
   | Version | **vXX.XX.X (LTS)** — garde la version LTS par défaut, ne la change pas |
   | OS | **Linux** |
   | Package Manager | **fnm** (dans "Recommended (Official)") |
   | Package Format | **npm** — garde la valeur par défaut |

3. La page affichera les commandes exactes à lancer. Ouvre ton terminal et copie-colle-les. Elles ressembleront à ceci :

   ```bash
   # Step 1 — Install fnm
   curl -fsSL https://fnm.vercel.app/install | bash

   # Step 2 — Restart your terminal or reload your shell profile
   source ~/.bashrc   # or: source ~/.zshrc (if you use zsh)

   # Step 3 — Install Node.js
   fnm install 24   # The page will show the exact version number
   ```

   > Le numéro de version peut différer de celui ci-dessus — utilise toujours ce que le site affiche.

4. **Ferme et rouvre ton terminal** (ou lance la commande `source` ci-dessus) pour que `fnm`, `node` et `npm` soient disponibles.

> **Pourquoi fnm ?** Il est dans la catégorie "Recommended (Official)" sur la page de téléchargement Node.js. Comme nvm, il installe Node dans ton répertoire personnel, donc tu n'as jamais besoin de `sudo` pour les installations npm globales — mais fnm est nettement plus rapide (écrit en Rust) et fonctionne de la même façon sur Windows, macOS et Linux.

### Option B : utiliser le gestionnaire de paquets de ta distribution

C'est plus rapide, mais cela peut installer une ancienne version de Node.js. **Vérifie la version après installation** — si elle est inférieure à v18, utilise plutôt l'option A.

**Ubuntu / Debian :**

```bash
sudo apt update
sudo apt install -y nodejs npm

# Check the version
node --version   # Must be v18 or higher
```

**Fedora :**

```bash
sudo dnf install -y nodejs npm
```

**Arch Linux :**

```bash
sudo pacman -S nodejs npm
```

### Option C : NodeSource (dernière LTS via apt, sans nvm)

Pour les utilisateurs Ubuntu/Debian qui veulent la dernière LTS sans utiliser nvm :

```bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
```

## Étape 2 : vérifier Node.js

```bash
node --version
npm --version
```

Les deux doivent afficher des numéros de version. `node --version` doit afficher v18.x ou supérieur.

## Étape 3 : installer Claude Code

```bash
npm install -g @anthropic-ai/claude-code
```

> **Erreur de permission ?**
> - Si tu as utilisé **fnm** ou **nvm** : cela ne devrait pas arriver. Vérifie qu'il est actif (`which node` doit pointer vers un chemin dans ton répertoire personnel, pas `/usr/...`).
> - Si tu as utilisé une installation système : utilise soit `sudo npm install -g @anthropic-ai/claude-code`, soit corrige les permissions du répertoire global npm :
>   ```bash
>   mkdir -p ~/.npm-global
>   npm config set prefix '~/.npm-global'
>   echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
>   source ~/.bashrc
>   ```

## Étape 4 : vérifier Claude Code

```bash
claude --version
```

Tu devrais voir la version de Claude Code s'afficher. Retourne maintenant à [README.md](README.md) pour configurer l'authentification.

---

## Notes

- **WSL (Windows Subsystem for Linux)** : ce guide fonctionne aussi dans WSL. Suis simplement ces étapes depuis ton terminal WSL.
- **Problèmes de PATH** : si `claude` est introuvable après installation, assure-toi que le bin global npm est dans ton PATH. Lance `npm config get prefix` — le sous-répertoire `bin/` de ce chemin doit être dans ton PATH.
