Warum sagt drush "Befehl nicht gefunden", wenn ich versuche, Remote-Befehle auszuführen? [geschlossen]

14

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?

Bilderstürmer
quelle
So wie ich Ihre Frage sehe, geht es immer noch um Bash, nicht um Drupal. Eigentlich geht es auch nicht um Drush, denn wenn der Befehl nicht ausgeführt wird, spielt es keine Rolle, ob es sich um Drush, Tree, Wget oder was handelt. Und ich schreibe es, ohne eine Antwort zu sehen, meine Meinung basiert nur auf der Frage, so wie Sie sie gestellt haben.
Mołot
@ Mołot: Sobald Sie die Antwort kennen (und erst dann), scheint es sich um bash zu handeln, da Sie erkennen, dass die Ursache des Problems in bash liegt, aber bevor Sie die Antwort kennen, scheint die Nachricht "Bash is" zu bedeuten zu sagen, dass Drush sagt, dass der Befehl nicht gefunden wurde ". Bash scheint anfangs nur eine Nachricht von Drush zu tragen. Natürlich ist das nicht das, was wirklich passiert, aber das weißt du nicht, bis du die Antwort weißt . Die Frage ist daher eine Frage, die ein Drupal-Benutzer möglicherweise zu Drush hat (soweit er weiß). Die Antwort bringt Bash in den Vordergrund.
Iconoclast
Ich habe noch nicht einmal gesehen, dass es eine Antwort gibt, als ich meinen Kommentar oben gepostet habe. In Ihrer Frage ist klar, dass Sie nach Bash fragen, die den Befehl nicht finden können. Sie zitieren die Fehlerzeile, in der bash meldet, dass drush nicht gefunden werden kann. Sie, kein Antwortender. Mein erster Kommentar befand sich in der Überprüfungswarteschlange und wir sehen dort nicht einmal Antworten. Wir sehen nicht einmal, ob es welche gibt.
Mołot
Die Syntax der Doppelpunkte scheint nicht nur zu implizieren , dass Bash sagt, dass Drush sagt ... , sondern für den Benutzer wurde ein Drush- Befehl ausgegeben. Daher ist es am natürlichsten, den Befehl zu interpretieren, auf den Bezug genommen wird der Drush-Befehl, und nicht Drush selbst.
Iconoclast
1
"Answer" = "solution". "Answer! =" Reply ". Sie kannten die Lösung, bevor Sie Antworten gelesen haben. Dies gilt nicht für alle. Fragen müssen nach dem Inhalt der Frage und nicht nach dem Inhalt der Antwort (oder" solution ", falls Sie dies wünschen) kategorisiert werden bevorzugen).
Iconoclast

Antworten:

15

Diese Meldung stammt von dem Remotecomputer, der sich beschwert, nicht verstanden zu haben, wo die drushausfü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
Bilderstürmer
quelle
8
Auch achten Sie auf die folgenden in Ihrer ~ / .bashrc: [ -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.
greg_1_anderson
3
Danke für die Antwort und den Kommentar. Ich musste den Pfad .bashrcvor der Zeile # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacauf Ubuntu 14.04
Shaun Dychko 24.07.14