Wenn ich einen drush-Befehl verwende, um etwas auf einem Remote-Computer auszuführen, wird die folgende Meldung angezeigt:
Bash: Drush: Befehl nicht gefunden
Was ist das Problem?
Wenn ich einen drush-Befehl verwende, um etwas auf einem Remote-Computer auszuführen, wird die folgende Meldung angezeigt:
Bash: Drush: Befehl nicht gefunden
Was ist das Problem?
Antworten:
Diese Meldung stammt von dem Remotecomputer, der sich beschwert, nicht verstanden zu haben, wo die drush
ausführbare Datei zu finden ist , und nicht von Drush, der sich darüber beschwert, dass der (Unter-) Befehl, den Sie möglicherweise geben möchten, nicht gefunden werden kann, obwohl die Zeichensetzung dies nahelegt. (Wenn bash:
Bash bedeutet, dass Sie eine Nachricht erhalten, dann drush:
sollte dies dasselbe bedeuten - wenn es eine Konsistenz gibt. Aber eigentlich soll dies bedeuten, dass drush:
der Betreff der Nachricht und nicht die Quelle der Nachricht, die bash:
an Sie weitergeleitet wird . Dies würde der Fall sein .) klarer sein, wenn die zweite :
entfernt wurden.)
Drush meldet sich über ssh bei Ihrem Remote-Computer an, aber es ist kein normales interaktives Login, daher wird das .bash_profile nicht als Quelle verwendet. Die .bashrc-Datei wird jedoch als Quelle angegeben.
Fügen Sie den Drush-Pfad (ohne den eigentlichen Drush, nur mit dem Verzeichnis, das den Drush enthält) zur PATH-Variablen in Ihrer entfernten .bashrc-Datei hinzu, und alles sollte in Ordnung sein. Das könnte zum Beispiel so aussehen:
PATH=$PATH:/usr/local/zend/bin
[ -z "$PS1" ] && return
. Einige Plattformen verwenden dies, um im nicht interaktiven Modus zu retten. Ubuntu legt dies zum Beispiel in Ihrer initialen .bashrc-Datei ab. Wenn Sie Ihren PATH festlegen, müssen Sie sicherstellen, dass Sie ihn vor Bedingungen wie dieser festlegen, die ein vorzeitiges Beenden erzwingen können.
.bashrc
vor der Zeile # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac
auf Ubuntu 14.04