Fehlerbehebung

Composer installiert ein globales Paket, findet aber seinen Befehl nicht

Geprüft am 2 Min. Lesezeit Composer Terminal

Viele Composer-Pakete enthalten Binärdateien oder CLI-Programme, mit denen sich Funktionen über die Kommandozeile nutzen lassen.

Der Laravel-Installer stellt zum Beispiel den Befehl laravel bereit. Das Anlegen eines Projekts kann je nach gewählten Optionen weitere Programme erfordern.

Zuerst installieren wir das Paket global in unserem Konto mit composer global require:

composer global require "laravel/installer"

Antwortet das Terminal beim Aufruf von laravel mit command not found, prüfen Sie zuerst, ob die Installation erfolgreich abgeschlossen wurde und das Paket die Binärdatei enthält:

composer global show laravel/installer
composer global config bin-dir --absolute

Der zweite Befehl gibt das tatsächliche Verzeichnis der Binärdateien aus. Prüfen Sie, dass laravel dort existiert, und führen Sie command -v laravel aus, um zu sehen, ob die Shell es bereits findet.

Nur wenn die Binärdatei existiert und ihr Verzeichnis nicht im PATH steht, fügen Sie den von Composer ausgegebenen Pfad zur Startdatei der Shell hinzu. In Bash zum Beispiel:

export PATH="$PATH:/ruta/devuelta/por/composer"

Führen Sie source ~/.bashrc aus, um die Änderung zu übernehmen, wenn die Sitzung Bash verwendet. Bei einer anderen Shell ändern Sie deren Startdatei.

Gehen Sie nicht davon aus, dass der Pfad immer ~/.composer/vendor/bin lautet: Er kann sich je nach COMPOSER_HOME, XDG oder der Composer-Option bin-dir ändern.

Wenn der Befehl gefunden wird, aber fehlschlägt

Führen Sie zuerst laravel --version aus, um zu prüfen, welche Binärdatei Sie verwenden, ohne ein Projekt anzulegen. Ein Fehler bei Berechtigungen, beim PHP-Interpreter oder bei den Anforderungen ist etwas anderes als command not found und lässt sich nicht beheben, indem Sie das Verzeichnis erneut zum PATH hinzufügen.

Ein Cron-Job oder eine nicht interaktive Sitzung liest ~/.bashrc möglicherweise nicht. Verwenden Sie für solche Aufgaben geprüfte absolute Pfade und das passende PHP. Wenn Sie das Verzeichnis ans Ende von PATH anhängen, behält ein bereits vorhandener gleichnamiger Befehl Vorrang; erkennen Sie diesen Fall mit command -v, bevor Sie die Reihenfolge ändern. Fügen Sie keine Verzeichnisse hinzu, in die andere Benutzer schreiben können.

Das könnte Ihnen auch helfen

Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.