我使用Vagrant + VirtualBox爲我的Rails應用程序設置虛擬機。我正在清理了在Vagrantfile
引用像這樣一個.sh
配置腳本:Vagrant/VirtualBox虛擬機配置:rbenv安裝成功,但腳本失敗後續使用
config.vm.provision "shell", path: "script/provision-script.sh"
的提供腳本做了一些事情,但在接近年底它應該安裝rbenv紅寶石版本,然後使用rbenv安裝Ruby 2.2.1。提供腳本的那部分看起來是這樣的:
echo "setting up rbenv"
# execute the remaining commands as vagrant user, instead of root
sudo -H -u vagrant bash -c "git clone https://github.com/sstephenson/rbenv.git ~vagrant/.rbenv"
sudo -H -u vagrant bash -c "git clone https://github.com/sstephenson/ruby-build.git ~vagrant/.rbenv/plugins/ruby-build"
sudo -H -u vagrant bash -c "git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~vagrant/.rbenv/plugins/rbenv-gem-rehash"
echo "setting up rbenv environment in bash"
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~vagrant/.bashrc
echo 'eval "$(rbenv init -)"' >> ~vagrant/.bashrc
# start new vagrant shell so rbenv will work
echo "building ruby"
su vagrant
rbenv install 2.2.1 && rbenv global 2.2.1 && rbenv rehash && cd /path/to/my/app && gem install bundler rake && rbenv rehash && bundle && rbenv rehash
一切行動rbenv install...
部分正常工作。安裝紅寶石失敗,出現以下錯誤:
==> default: setting up rbenv
==> default: Cloning into '/home/vagrant/.rbenv'...
==> default: Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'...
==> default: Cloning into '/home/vagrant/.rbenv/plugins/rbenv-gem-rehash'...
==> default: setting up rbenv environment in bash
==> default: building ruby
==> default: /tmp/vagrant-shell: line 73: rbenv: command not found
然後腳本結束。我可以用vagrant ssh
打開虛擬機,然後成功運行rbenv install 2.2.1
,所以我猜測在配置過程中,實際上並沒有啓動新的流浪外殼。我的印象是,這應該發生在su vagrant
之前rbenv install 2.2.1
之前。
我能做些什麼來確保在此配置過程中初始化新shell,並且rbenv
命令可以正常工作?
請考慮將我的答案標記爲有效答案。謝謝 – 2016-03-21 12:44:55