Por que drush diz "comando não encontrado" quando tento executar comandos remotos? [fechadas]


13

Quando uso um comando drush para fazer algo em uma máquina remota, recebo a seguinte mensagem:

bash: drush: comando não encontrado

Qual é o problema?


A maneira como vejo sua pergunta, ainda é sobre bash, não sobre o próprio Drupal. Nem sobre drush, realmente, porque se o comando não for executado, não importa se é drush, tree, wget ou o quê. E eu escrevo sem ver nenhuma resposta, minha opinião é baseada apenas na pergunta, exatamente como você pediu.
Mołot 02/12/19

@ Mołot: Depois de saber a resposta (e só então), isso pode parecer sobre o bash, porque você percebe que a origem do problema está no bash, mas antes que você saiba a resposta, parece que a mensagem significa "Bash is dizendo que Drush está dizendo que o comando não foi encontrado ". O Bash parece inicialmente estar carregando apenas uma mensagem do Drush. Claro que não é isso que realmente está acontecendo, mas você não sabe até saber a resposta . Portanto, a pergunta é uma pergunta que um usuário do Drupal pode ter, sobre (até onde eles sabem) Drush. A resposta coloca o Bash em primeiro plano.
iconoclast

Eu nem vi resposta quando publiquei meu comentário acima. É claro na sua pergunta que você está perguntando sobre o bash incapaz de encontrar o comando. Você cita a linha de erro em que o bash informa que não consegue encontrar drush. Você, não qualquer respondedor. Meu primeiro comentário foi na fila de revisão e nem vemos respostas lá. Nem vemos se há algum.
Mołot 02/12/19

Não apenas a sintaxe dos dois pontos parece implicar que Bash está dizendo que Drush está dizendo ... , mas, no que diz respeito ao usuário, um comando Drush foi emitido, por isso é mais natural interpretar o comando que está sendo referido como o comando Drush, em vez de o próprio Drush.
iconoclast

1
"Resposta" = "solução". "Answer! =" Reply ". Você sabia a solução antes de ler qualquer resposta. Isso não será verdadeiro para todos. As perguntas devem ser categorizadas pelo conteúdo da pergunta e não pelo conteúdo da resposta (ou" solução "se você preferir).
iconoclasta

Respostas:


15

Esta mensagem é da máquina remota reclamando que não entendeu onde encontrar o drushexecutável, não Drush reclamando que não consegue encontrar o (sub) comando que você pode estar tentando dar, mesmo que a pontuação sugira o último. (Se bash:significa que o Bash está passando uma mensagem para você, então drush:deve significar a mesma coisa - se houver alguma consistência. Mas, na verdade, pretende-se dizer que drush:é o assunto da mensagem, não a origem da mensagem passada bash:para você. fique mais claro se o segundo :for removido.)

Drush efetua logon na sua máquina remota pelo ssh, mas não é um logon interativo normal, portanto não gera o arquivo .bash_profile. No entanto, ele gera o arquivo .bashrc.

Adicione o caminho do drush (não incluindo o drush em si, apenas o diretório que contém o drush) à variável PATH no seu .bashrc remoto e tudo deve estar bem. Por exemplo, isso pode ser assim:

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

8
Também olhar para o seguinte em seu ~ / .bashrc: [ -z "$PS1" ] && return. Algumas plataformas usam isso para resgatar se estiver executando no modo não interativo. O Ubuntu, por exemplo, coloca isso no seu .bashrc inicial. Se você definir seu PATH, precisará certificar-se de configurá-lo antes de qualquer condicional como este que possa forçar uma saída antecipada.
greg_1_anderson

3
Obrigado pela resposta e comentário. Eu tinha de editar o caminho de .bashrcantes da linha # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacno Ubuntu 14.04
Shaun Dychko
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.