Perché drush dice "comando non trovato" quando provo ad eseguire comandi remoti? [chiuso]


13

Quando uso un comando drush per fare qualcosa su una macchina remota, ricevo il seguente messaggio:

bash: drush: comando non trovato

Qual è il problema?


Per come vedo la tua domanda, si tratta ancora di bash, non di Drupal stesso. Né di Drush, davvero, perché se il comando non viene eseguito, non importa se è Drush, Tree, Wget o cosa. E lo scrivo senza vedere alcuna risposta, la mia opinione si basa solo sulla domanda, proprio come hai chiesto.
— Mołot,

@ Mołot: una volta che conosci la risposta (e solo allora) potrebbe sembrare di bash, perché ti rendi conto che la fonte del problema è con bash, ma prima di conoscere la risposta, sembra che il messaggio significhi "Bash è dicendo che Drush sta dicendo che il comando non è stato trovato ". Bash sembra inizialmente trasportare solo un messaggio da Drush. Ovviamente non è quello che sta realmente accadendo, ma non lo sai fino a quando non conosci la risposta . La domanda quindi è una domanda che un utente Drupal può avere, riguardo (per quanto ne sa) Drush. La risposta porta Bash in primo piano.
— iconoclasta il

Non ho nemmeno visto alcuna risposta quando ho pubblicato il mio commento sopra. È chiaro nella tua domanda che stai chiedendo di non poter trovare il comando bash. Citi la riga di errore in cui Bash segnala che non riesce a trovare Drush. Tu, nessun risponditore. Il mio primo commento è stato in coda di revisione e non vediamo nemmeno le risposte lì. Non vediamo nemmeno se ce ne sono.
— Mołot,

Non solo la sintassi dei due punti sembra implicare che Bash stia dicendo che Drush sta dicendo ... , ma per quanto riguarda l'utente, è stato emesso un comando Drush , quindi è più naturale interpretare il comando a cui si fa riferimento come il comando Drush, piuttosto che Drush stesso.
— iconoclasta il

1
"Answer" = "soluzione". "Rispondi! =" Rispondi ". Conoscevi la soluzione prima di leggere le risposte. Non sarà vero per tutti. Le domande devono essere classificate in base al contenuto della domanda e non al contenuto della risposta (o" soluzione "se tu preferisco).
— iconoclasta il

Risposte:


15

Questo messaggio proviene dalla macchina remota lamentando che non capiva dove trovare l' drusheseguibile, non Drush lamentandosi che non riusciva a trovare il (sotto) comando che potresti provare a dare, anche se la punteggiatura suggerisce quest'ultimo. (Se bash:significa che Bash ti sta trasmettendo un messaggio, allora drush:dovrebbe significare la stessa cosa - se c'è coerenza. Ma in realtà è destinato a significare drush:l'oggetto del messaggio, non la fonte del messaggio che ti passa bash:. essere più chiaro se il secondo :fosse rimosso.)

Drush accede al tuo computer remoto su ssh, ma non è un normale login interattivo, quindi non genera il file .bash_profile. Tuttavia, genera il file .bashrc.

Aggiungi il percorso di trascinamento (escluso drush stesso, includendo solo la directory che contiene drush) alla variabile PATH nel tuo .bashrc remoto e tutto dovrebbe andare bene. Ad esempio, potrebbe apparire così:

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

8
Anche guardare fuori per la seguente nel tuo ~ / .bashrc: [ -z "$PS1" ] && return. Alcune piattaforme usano questo per salvare se in esecuzione in modalità non interattiva. Ubuntu, ad esempio, lo inserisce nel tuo .bashrc iniziale. Se imposti il ​​PERCORSO, devi assicurarti di impostarlo prima di qualsiasi condizionale come questo che potrebbe forzare un'uscita anticipata.
— greg_1_anderson,

3
Grazie per la risposta e il commento. Ho dovuto modificare il percorso .bashrcprima della riga # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacsu Ubuntu 14.04
— Shaun Dychko,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.