Pourquoi drush dit "commande introuvable" lorsque j'essaie d'exécuter des commandes à distance? [fermé]


13

Lorsque j'utilise une commande drush pour faire quelque chose sur une machine distante, j'obtiens le message suivant:

bash: drush: commande introuvable

Quel est le problème?


La façon dont je vois votre question, c'est toujours bash, pas Drupal lui-même. Ni à propos de drush, vraiment, car si la commande n'est pas exécutée, peu importe que ce soit drush, tree, wget ou quoi. Et je l'écris sans voir de réponses, mon avis est basé uniquement sur la question, comme vous l'avez demandé.
Mołot

@ Mołot: Une fois que vous connaissez la réponse (et alors seulement), il peut sembler qu'il s'agit de bash, car vous vous rendez compte que la source du problème est avec bash, mais avant de connaître la réponse, il semble que le message signifie "Bash is disant que Drush dit que la commande est introuvable ". Bash semble initialement ne porter qu'un message de Drush. Bien sûr, ce n'est pas ce qui se passe vraiment, mais vous ne le savez pas tant que vous ne connaissez pas la réponse . La question est donc une question qu'un utilisateur Drupal peut avoir, à propos (à leur connaissance) de Drush. La réponse place Bash au premier plan.
iconoclaste du

Je n'ai même pas vu de réponse quand j'ai posté mon commentaire ci-dessus. Il est clair dans votre question que vous posez des questions sur bash incapable de trouver la commande. Vous citez la ligne d'erreur où bash signale qu'il ne peut pas trouver drush. Vous, pas n'importe quel répondeur. Mon premier commentaire était dans la file d'attente d'examen et nous ne voyons même pas de réponses là-bas. Nous ne voyons même pas s'il y en a.
Mołot

Non seulement la syntaxe des deux-points semble impliquer que Bash dit que Drush dit ... , mais en ce qui concerne l'utilisateur, une commande Drush a été émise, il est donc plus naturel d'interpréter la commande qui est appelée la commande Drush, plutôt que Drush lui-même.
iconoclaste du

1
"Answer" = "solution". "Réponse! =" Réponse ". Vous connaissiez la solution avant de lire les réponses. Cela ne sera pas vrai pour tout le monde. Les questions doivent être classées en fonction du contenu de la question et non du contenu de la réponse (ou" solution "si vous préférez).
iconoclaste

Réponses:


15

Ce message provient de la machine distante se plaignant qu'elle n'a pas compris où trouver l' drushexécutable, pas Drush se plaignant de ne pas trouver la (sous) commande que vous essayez de lui donner, même si la ponctuation suggère ce dernier. (Si cela bash:signifie que Bash vous transmet un message, cela drush:devrait signifier la même chose - s'il y a une cohérence. Mais en fait, cela signifie que drush:c'est le sujet du message, et non la source du message qui vous est transmis bash:. être plus clair si le second a :été supprimé.)

Drush se connecte à votre machine distante via ssh, mais ce n'est pas une connexion interactive normale, donc il ne source pas le .bash_profile. Cependant, il source le fichier .bashrc.

Ajoutez le chemin de drush (n'incluant pas drush lui-même, juste en incluant le répertoire contenant drush) à la variable PATH dans votre .bashrc distant et tout devrait bien se passer. Par exemple, cela peut ressembler à ceci:

PATH=$PATH:/usr/local/zend/bin

8
Regardez aussi pour ce qui suit dans votre ~ / .bashrc: [ -z "$PS1" ] && return. Certaines plateformes l'utilisent pour renflouer si elles s'exécutent en mode non interactif. Ubuntu, par exemple, place cela dans votre .bashrc initial. Si vous définissez votre PATH, vous devez vous assurer que vous le définissez avant toute condition telle que celle-ci qui pourrait forcer une sortie anticipée.
greg_1_anderson

3
Merci pour la réponse et le commentaire. J'ai dû modifier le chemin .bashrcavant la ligne # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacsur Ubuntu 14.04
Shaun Dychko
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.