Używam Vagrant + VirtualBox do skonfigurowania maszyny wirtualnej dla mojej aplikacji Rails. Pracuję na sprzątanie skrypt .sh
rezerw, który jest wymieniony w Vagrantfile
tak:Udostępnianie VM Vagrant/VirtualBox: rbenv instaluje się pomyślnie, ale kolejne zastosowania w przypadku błędu skryptu
config.vm.provision "shell", path: "script/provision-script.sh"
Skrypt Przepis robi wiele rzeczy, ale w końcu jest to podobno zainstalować rbenv Ruby wersjonowanie, a następnie użyć rbenv zainstalować Ruby 2.2.1. Że część skryptu przepis wygląda następująco:
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
Wszystko do rbenv install...
część działa poprawnie. Zainstalowanie ruby kończy się niepowodzeniem z następującym błędem:
==> 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
Scenariusz kończy się. Mogę otworzyć vm z vagrant ssh
, a następnie z powodzeniem uruchomić rbenv install 2.2.1
, więc domyślam się, że podczas udostępniania nowej powłoki włóczęgi w rzeczywistości nie jest uruchamiany. Miałem wrażenie, że powinno się to zdarzyć z su vagrant
tuż przed rbenv install 2.2.1
.
Co mogę zrobić, aby upewnić się, że nowa powłoka zostanie zainicjowana podczas tej konfiguracji i czy polecenie rbenv
zadziała?
Proszę oznaczyć flagę jako prawidłową. Dzięki –