Я пытаюсь вызвать установку node.js на удаленном сервере под управлением Ubuntu через SSH. Узел был установлен через nvm.node.js недоступен через ssh
SSHing в и вызова узел работает просто отлично:
[email protected]:~$ ssh [email protected]
(Server welcome text)
[email protected]:~$ which node
/home/user/.nvm/v0.10.00/bin/node
Однако если объединить их в одну строку:
[email protected]:~$ ssh [email protected] "which ls"
/bin/ls
[email protected]:~$ ssh [email protected] "which node"
Нет знака узла, поэтому я попытался поиске .bashrc и ждать 10 секунд:
[email protected]:~$ ssh [email protected] "source ~/.bashrc; sleep 10; which node"
Только узел, похоже, пострадал от этого. Одна вещь, которую я заметил, это то, что если я схожу, а затем проверю, в какой оболочке я нахожусь, он говорит -bash
, а если я ssh direct, это даст мне /bin/bash
. Я попытался выполнить команды внутри оболочки входа в bash:
[email protected]:~$ ssh [email protected] 'bash --login -c "which node"'
Все еще ничего.
В основном, мой вопрос: Почему bash не обнаруживает мою установку node.js, когда я вызываю ее неинтерактивно из SSH?
Я запустить его как SSH -t пользователь @ удаленный_сервер «какой узел», но он все еще не Найди это. Добавление RequestTTY в файл .ssh/config также не имеет никакого эффекта. – TDN169
Я также попробовал ssh -t user @ remoteserver «bash -rcfile ~/.bashrc -c», который не имеет никакого эффекта. – TDN169
Я только что попробовал: ssh -t user @ remoteserver 'export NVM_DIR = "/ home/user/.nvm"; [-s "$ NVM_DIR/nvm.sh"] &&. "$ NVM_DIR/nvm.sh"; какой узел, и это работает! – TDN169