¿Por qué drush dice "comando no encontrado" cuando intento ejecutar comandos remotos? [cerrado]


13

Cuando uso un comando drush para hacer algo en una máquina remota, recibo el siguiente mensaje:

bash: drush: comando no encontrado

¿Cuál es el problema?


A mi modo de ver su pregunta, todavía se trata de bash, no de Drupal en sí. Tampoco sobre drush, realmente, porque si el comando no se ejecuta, no importa si es drush, árbol, wget o qué. Y lo escribo sin ver ninguna respuesta, mi opinión se basa solo en la pregunta, tal como lo preguntaste.
Mołot

@ Mołot: Una vez que sepas la respuesta (y solo entonces) puede parecer que se trata de bash, porque te das cuenta de que la fuente del problema es bash, pero antes de que sepas la respuesta, parece que el mensaje significa "Bash is diciendo que Drush dice que no se encontró el comando ". Bash parece que inicialmente solo lleva un mensaje de Drush. Por supuesto, eso no es lo que realmente está sucediendo, pero no lo sabrá hasta que sepa la respuesta . La pregunta, por lo tanto, es una pregunta que un usuario de Drupal puede tener, sobre (hasta donde ellos saben) Drush. La respuesta trae a Bash a la vanguardia.
iconoclasta

Ni siquiera he visto que haya una respuesta cuando publiqué mi comentario arriba. Está claro en su pregunta que está preguntando si bash no puede encontrar el comando. Usted cita la línea de error donde bash informa que no puede encontrar drush. Usted, no cualquier respondedor. Mi primer comentario fue en la cola de revisión y ni siquiera vemos respuestas allí. Ni siquiera vemos si hay alguno.
Mołot

La sintaxis de los dos puntos no solo parece implicar que Bash está diciendo que Drush está diciendo ... , sino que, en lo que respecta al usuario, se emitió un comando Drush , por lo que es muy natural interpretar el comando al que se hace referencia como el comando Drush, en lugar de Drush mismo.
iconoclasta

1
"Answer" = "solución". "Answer! =" Reply ". Sabía la solución antes de leer las respuestas. Eso no será cierto para todos. Las preguntas deben clasificarse por el contenido de la pregunta, no por el contenido de la respuesta (o" solución "si usted prefiero).
iconoclasta

Respuestas:


15

Este mensaje es de la máquina remota que se queja de que no entendió dónde encontrar el drushejecutable, no Drush se queja de que no puede encontrar el (sub) comando que puede estar tratando de darle, a pesar de que la puntuación sugiere lo último. (Si bash:significa que Bash le está enviando un mensaje, entonces drush:debería significar lo mismo, si hay alguna coherencia. Pero en realidad se pretende que drush:sea ​​el tema del mensaje, no la fuente del mensaje que se le transmitió) bash:. ser más claro si :se eliminó el segundo ).

Drush inicia sesión en su máquina remota a través de ssh, pero no es un inicio de sesión interactivo normal, por lo que no genera el .bash_profile. Sin embargo, sí genera el archivo .bashrc.

Agregue la ruta drush (sin incluir drush en sí, solo incluye el directorio que contiene drush) a la variable PATH en su .bashrc remoto y todo debería estar bien. Por ejemplo, eso puede verse así:

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

8
También mirar hacia fuera para el siguiente en su ~ / .bashrc: [ -z "$PS1" ] && return. Algunas plataformas usan esto para rescatar si se ejecuta en modo no interactivo. Ubuntu, por ejemplo, pone esto en su .bashrc inicial. Si configura su RUTA, debe asegurarse de configurarla antes de cualquier condicional como este que pueda forzar una salida anticipada.
greg_1_anderson

3
Gracias por la respuesta y comentario. Tuve que editar la ruta .bashrcantes de la línea # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacen Ubuntu 14.04
Shaun Dychko
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.