スクリプトを使用してVMの設定を自動化しようとしていますが、~/.bashrc
、~/.bash_profile
、または~/.profile
のいずれかに設定されるパス変数にアクセスする際に問題が発生します。なぜリモートVM上でnvmとyarnを使用してノードを設定できないのですか?
私のリモートVMは、ubuntu 14.04 LTSを実行していて、私はssh経由でデプロイしています。
これはNVMをインストールすることで、仮想マシンを構成するためにbashコマンドとして実行されるように一緒に結合されます配列である:
リターン[ 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`
].join('\n');
しかし、私は実際にノードと糸をインストールする次のスクリプトを実行すると、それが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:command見つからない
私はsshを使用して手動でさまざまなプロファイルに何も追加したくありません。私はすべてがスクリプトによって行われることを望みます。また、~/.nvm/nvm.sh
のソースを避けたり、sshセッションの開始時にプロファイルを取得したりしたいと思っています。私はsshセッションが自動的に~/.bash_profile
を送信するという印象を受けていました。これらの変数は正しいでしょうか?そうでない場合は、これらの変数に自動的にアクセスできるようにデプロイメントスクリプトを構成する方法は他にありますか?あなたは私がnvm
のコマンドを実行する前に、実際にsource ~/.nvm/nvm.sh
に行を追加します。あなたのコメントで言ったように、あなたが& &を使用しているという事実に基づいて
あなたはすでに 'nvm'は、時間によって、第2にインストールされていることを確認しましたセットコマンドは実行されますか?それが存在するかどうかを確かめたいだけです。また、あなたのシェルが '/ bin/sh'のようなものではなく、'/bin/bash'に設定されていることを確認したのでは、 – v0rtex
したがって、2番目のコマンドは最初のスクリプトの後に&&として実行されます(ノードプロセスは最初のスクリプトから0で終了します)。ユーザーシェルについては、どうすれば確認できますか? – roonie
また、それはなぜ重要なのでしょうか? – roonie