Почему не виден 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
      });

введите сюда описание изображения


Ответы (1 шт):

Автор решения: eri

Укажи полные пути к программам

→ Ссылка