Почему не виден nvm если запускать через ssh2?
Ос Ubuntu 22.04.
В системе 2 оболочки bash и zsh. В обоих конфиг файлах оболочек и .profile прописаны команды на запуск nvm.
Сам nvm установлен и настроен. Если открыть терминал и ввести
nvm -v
то выведет 0.39.5. Если переключаться между оболочками, перезагружать систему то nvm всегда загружена в оболочку.
Если подключиться пользователем test по ssh с другого компьютера ssh [email protected]
То там все ок, оболочкой будет zsh и там присутствует nvm и node версии 8.17
А вот при запуске внутри node приложения через пакет ssh2. Под тем же пользователем test к тому же ip 192.22.10.70, он выводит того же пользователя и оболочку которые требуются, whoami = test echo $0 = zsh
Но вот Версия node = 12, а не 8
И Пишет zsh:1: command not found: nvm
То есть при исполнении команды через ssh2 не загружаются профили zsh или bash где прописаны команды экспорта nvm?
Такое же поведение если подключаться c ключом -T
ssh -T [email protected]
Пример кода
const { Client } = require('ssh2');
const conn = new Client(); // создаем клиент
let command = "cd /home/manking/test/prog1 && nvm -v 2>&1 | tee /home/manking/test/data/releases/logs/dev.txt"; // nvm not found
// Соединяемся
conn.exec(command, { pty: pty }, (err, stream) => {
if (err) {
console.log('conn.exec err=', err);
}).connect({
host,
port: 22,
username: sshUser, // имя пользователя
privateKey: fs.readFileSync(sshPrivateKey), // ключ ssh
readyTimeout
});
