Я пытаюсь запустить команду на удаленном хосте через libssh2, завернутую в ssh2
Rust crate .
Так что я хотел бы запустить команду cargo build
, но когда я пытаюсь запустить его с помощью библиотеки libs sh, я получаю сообщение об ошибке:
cargo: command not found
Однако, когда я sh вхожу на сервер вручную из командной строки, все работает нормально.
Я заметил, что $PATH
отличается при запуске s sh из командной строки и libs sh, а также:
, например, когда я echo $PATH
s sh дает мне:
/home/<user>/.cargo/bin:/usr/share/swift/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bi
, в то время как libs sh дает мне:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Похоже, происходит то, что изменения, сделанные в $PATH
внутри .bashrc
и .profile
не делают этого при запуске через libs sh.
Я также получаю такое же поведение, если я запускаю /bin/bash -c "echo ${PATH}"
Почему это так? , и есть ли способ получить одинаковое поведение в обоих этих случаях?