Corriger l’erreur zsh: command not found: laravel sur macOS

Vous souhaitez installer le framework Laravel sur votre MacBook sous macOS, pourtant impossible d’y parvenir à cause de cette erreur  » zsh: command not found: laravel  » ? Vous avez pourtant lu la documentation de Laravel, mais lorsque vous suivez ce qui est indiqué, impossible ça ne marche pas à cause de cette erreur. Frustrant d’être directement bloqué avant même d’avoir pu commencer … Rassurez-vous la solution pour corriger ce problème n’est pas très compliqué. Donc tout commence quand vous lancez la commande suivante pour démarrer un nouveau projet avec Laravel :

laravel new mon-app

Si vous êtes arrivé ici vous avez alors la terrible erreur :

zsh: command not found: laravel

Depuis la version macOS 11  » Big Sur  » il y a eu quelques changements notables hormis le support de l’ARM avec les nouvelles puces Silicon et l’abandon d’Intel. Comme je vous le disais dans cet article sur l’historique des commandes de macOS, Apple a décidé de passer sur le shell zsh plutôt que le classique bash encore majoritairement utilisé dans les distributions les plus populaires de Linux.

Je ne vais pas parler des anciennes versions de macOS et donc ce tutoriel s’adresse à vous si vous êtes sur macOS Big Sur, Monterey et Ventura. Il devrait rester valide pour les futures versions majeures de macOS, car Apple devrait vraisemblablement rester sur le shell zsh. Pour vérifier que vous avez bien zsh d’installé, vous pouvez taper la commande suivante qui va vous donner la version actuellement utilisée :

echo $ZSH_VERSION

Maintenant, on va vérifier si vous avez déjà un fichier important qui va nous être utile pour la suite ce tutoriel, vous pouvez lancer cette commande dans votre terminal :

open -e ~/.zshrc

Si vous avez une erreur qui vous indique que le fichier n’existe pas ce qui probablement le cas, il va donc falloir le créer. Le tilde ~ est un caractère spécial qui représente le répertoire personnel de l’utilisateur. Pour s’y rendre, il suffit donc de changer de dossier avec un simple cd :

cd ~

Pour créer ce nouveau fichier, plusieurs solutions s’offrent à vous. Vous pouvez le créer directement avec votre éditeur de texte préféré ou le créer avec la commande touch lorsque vous êtes bien dans votre dossier utilisateur, c’est important d’être au bon endroit.

touch .zshrc

Sur macOS, il est possible que dans votre Finder vous ne nous voyez pas le fichier fraîchement crée, car il s’agit d’un fichier caché qui commence par un  » . « . Pour le voir, il faudra donc forcer l’affichage des fichiers cachés dans le Finder de macOS. Sinon, la solution que je préfère, c’est taper la commande ls -la qui va vous afficher tous les fichiers et dossiers du répertoire courant sous forme de liste et afficher les fichiers cachés.

Pour information le fichier .zshrc permet de personnaliser et de configurer le comportement du shell Zsh. Il contient des instructions pour définir des variables d’environnement, des alias de commandes, des fonctions personnalisées, des options de shell, des raccourcis clavier et bien plus encore. Il faudrait un article dédié pour évoquer toutes les possibilités offertes par ce fichier de configuration du shell.

Maintenant, nous allons modifier ce fichier .zshrc et ajouter dedans :

PATH="$HOME/.composer/vendor/bin:$PATH"

Vous pouvez alors fermer tous les terminaux ouverts et lancer :

source ~/.zshrc

Cette commande sert à recharger le fichier de configuration .zshrc pour le shell Zsh sur macOS. Lorsque le fichier .zshrc est modifié pour ajouter de nouvelles variables, il est souvent nécessaire de recharger ces modifications pour qu’elles prennent effet immédiatement. Cette commande permet donc de forcer la nouvelle configuration pour éviter des problèmes de non prise en compte par exemple.

Allez dans votre dossier de travail et tentez à nouveau une commande d’installation :

laravel new lara

Cette fois ça marche et vous devriez normalement obtenir quelque chose qui ressemble à ça :

Pourquoi avons, nous ajouté PATH= »$HOME/.composer/vendor/bin:$PATH » dans ce fichier ?

Le chemin de recherche de commandes est une variable d’environnement qui contient une liste de répertoires séparés par des deux-points (:). Lorsque vous tapez une commande dans le terminal, le shell recherche cette commande dans chacun des répertoires répertoriés dans le chemin de recherche de commandes, dans l’ordre.

En ajoutant ~/.composer/vendor/bin à la variable PATH, le shell Zsh sera capable de trouver les exécutables installés par Composer. Comme vous le savez probabelement, il s’agit d’un gestionnaire de dépendances PHP qui est utilisé pour installer des packages tels que Laravel.

Ainsi, lorsque vous installez Laravel en utilisant Composer, les exécutables nécessaires pour exécuter les commandes Laravel seront installés dans le répertoire ~/.composer/vendor/bin, qui sera maintenant inclus dans le chemin de recherche de commandes grâce à la modification que vous avez apportée au fichier .zshrc. Vous avez résolu l’erreur : zsh: command not found: laravel !

Laisser un commentaire