shell provisionした際に、以下のエラーが出てrbenvやnvmやnpmが実行できなかった。
==> default: /tmp/vagrant-shell: line 21: rbenv: command not found
==> default: /tmp/vagrant-shell: line 62: nvm: command not found
==> default: /tmp/vagrant-shell: line 63: npm: command not found
原因は以下の記事で判明。
Vagrantでshell-provisioningする時のshell環境に関するメモ - Qiita
.bashrc の先頭に、コマンドライン(非interactive)の時に、読込を終了する様な記述があったため。
但し、上記の記事とは違い、.bashrcの先頭の記載は下記であった。
# If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac
そのため元記事にあるような
こうしたら動いた。
# set interactive environmental-valiables
PS1='$ '
source ~/.bashrc
# Install ruby
rbenv install 2.1.1
rbenv global 2.1.1
ではうまく行かず。。
echo $-
を確認した結果ところ
hB
となっていたので、 shel provision の冒頭で
set -i
することで.bashrcが無事読み込まれるようになりました。
config.vm.provision "shell", privileged: false, inline: <<-SHELL set -i source ~/.bashrc