Я получил ответ на другом форуме, оказывается, все, что мне нужно было сделать, это отключить аппаратную разгрузку контрольной суммы , ссылка на документацию
Вероятно, проблема в том, что команда nvm
задается из файла .bashrc
пользователя root
. При запуске su user
среда пользователя не будет использоваться, за исключением HOME
и SHELL
, а также USER
и LOGNAME
для пользователей, не являющихся root-пользователями -.
Обычно вы должны использовать флаг --login
для su
для использования среды пользователя (или просто -
для краткости ). Однако этого недостаточно, если вы хотите получить файл .bashrc
, так как .bashrc
будет использоваться только для интерактивных оболочек.
Я бы предложил попробовать переместить код nvm из /root/.bashrc
в /root/.bash_profile
и запустить команду как vagrant ssh -c "cd /opt/path && sudo su --login -c \"nvm use 10.16.0\""
. Поэтому все, что nvm добавил к .bashrc
, например.:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
просто перейдите к/root/.bash_profile
В качестве примечания: я не думаю, что лучше всего устанавливать nvm для пользователя root
. Было бы намного безопаснее установить его для vagrant
.