A chamada SSH não vê o caminho $ correto que existe em um servidor

3

No Ubuntu 14.04 eu tento estabelecer o Drush através do Composer.

Adicionei PATH="~/.composer/vendor/bin:$PATH a .bashrc ou .bash_profile em um servidor.

O Drush é chamado corretamente no servidor.

Mas não propriamente para remotamente: ssh myalias 'drush' bash: drush: command not found

Eu verifiquei echo $PATH para o servidor e remotamente e vi:

  • no servidor da web: /home/<MY_USER>/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
  • na chamada remota: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Por que há uma diferença (não há /home/<MY_USER>/.composer/vendor/bin )? Como adicionar o caminho correto para chamadas de retorno remotamente?

    
por Artu 13.03.2017 / 21:29

2 respostas

2

Vou fazer algumas suposições aqui:

  • drush está instalado em ~/.composer/vendor/bin
  • myalias é o nome do host remoto no qual você tem drush
  • o servidor da Web que você mencionou é realmente o mesmo que myalias em seu comando de exemplo

Quando você faz login interativamente com bash como seu shell, o script bash .bash_profile é executado. Se você definir seu PATH , tudo estará bem e você poderá encontrar drush diretamente.

Quando você executa algo não interativo, como ssh remotehost id , não há shell de login, portanto .bash_profile não é executado. No entanto, como seu shell é bash , o script de sessão .bashrc é executado. Eu suspeito que você não tenha definido seu PATH , então drush não pode ser encontrado.

Existem várias opções abertas para você. Aqui estão quatro sugestões

  1. Crie .bashrc call .bash_profile se não tiver sido chamado anteriormente por este shell (minha preferência)
  2. Adicione uma linha duplicada PATH=... em .bashrc (fácil)
  3. Mova as configurações do ambiente de .bash_profile e .bashrc para um arquivo comum originado por .bash_profile e .bashrc (mais elegante)
  4. Instale drush em uma localização do sistema (como /usr/local/bin ou algum lugar abaixo de /opt ) e verifique se esse diretório está incluído no sistema PATH settings (hard)
por 13.03.2017 / 23:30
0
PATH="~/.composer/vendor/bin:$PATH" ssh myalias 'drush'

fornecerá o PATH a ssh modificado e quaisquer utilitários que ele invocar.

    
por 28.04.2017 / 02:22

Tags