我正在尝试使用脚本自动执行VM配置,并且无法访问在~/.bashrc
,~/.bash_profile
或~/.profile
中设置的某些路径变量。
我的远程虚拟机正在运行ubuntu 14.04 LTS,我正在使用ssh进行部署。
这是连接在一起以作为bash命令运行的阵列,通过安装nvm来配置vm:
返回[
rm -rf ~/.nvm
,
sudo apt-get update
,
sudo apt-get install -y build-essential libssl-dev
,
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh
,
bash install_nvm.sh
,
echo "source ~/.nvm/nvm.sh" >> ~/.bash_profile
]。加入(' \ n&#39);
return [
`rm -rf ~/.nvm`,
`sudo apt-get update`,
`sudo apt-get install -y build-essential libssl-dev`,
`curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh`,
`bash install_nvm.sh`,
`echo "source ~/.nvm/nvm.sh" >> ~/.bash_profile`
].join('\n');

但是,当我运行实际安装node和yarn的下一个脚本时,它找不到nvm
:
return [
`nvm install ${config.node.version}`,
`nvm use ${config.node.version}`,
`echo "using node $(node -v) and npm $(npm -v)"`,
`curl -o- -L https://yarnpkg.com/install.sh | bash`,
'echo "export PATH="$HOME/.yarn/bin:$PATH"" >> ~/.bash_profile',
].join('\n');

这是错误: bash:nvm:找不到命令
bash: line 1: nvm: command not found`
我不想ssh并手动将任何内容添加到任何各种配置文件中。我希望脚本完成所有工作。我还想避免在ssh会话开始时采购~/.nvm/nvm.sh
或获取任何配置文件。我的印象是ssh会话会自动提供~/.bash_profile
,然后应该从那些变量读取正确的?如果没有,那么我如何配置我的部署脚本以自动访问这些变量?
答案 0 :(得分:0)
基于您正在使用&&amp ;;正如您在评论中所说,我会在运行source ~/.nvm/nvm.sh
命令之前向实际nvm
添加一行。在运行之前,您可能没有在shell上使用该命令。
改变这个:
return [
`rm -rf ~/.nvm`,
`sudo apt-get update`,
`sudo apt-get install -y build-essential libssl-dev`,
`curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh`,
`bash install_nvm.sh`,
`echo "source ~/.nvm/nvm.sh" >> ~/.bash_profile`
].join('\n');
对此:
return [
`rm -rf ~/.nvm`,
`sudo apt-get update`,
`sudo apt-get install -y build-essential libssl-dev`,
`curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh`,
`bash install_nvm.sh`,
`echo "source ~/.nvm/nvm.sh" >> ~/.bash_profile`,
`source ~/.nvm/nvm.sh`
].join('\n');