Tôi đang sử dụng Vagrant + VirtualBox để thiết lập máy ảo cho ứng dụng Rails của tôi. Tôi đang làm việc trên dọn dẹp một kịch bản .sh
cung được tham chiếu trong Vagrantfile
như vậy:Cung cấp VM Vagrant/VirtualBox: rbenv cài đặt thành công nhưng sử dụng sau đó trong tập lệnh thất bại
config.vm.provision "shell", path: "script/provision-script.sh"
Kịch bản cung hiện một số điều, nhưng về phía cuối cùng nó là vụ phải cài đặt rbenv của Ruby versioning và sau đó sử dụng rbenv để cài đặt Ruby 2.2.1. Phần đó của tập lệnh cung cấp trông giống như sau:
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
Mọi thứ đến phần rbenv install...
hoạt động chính xác. Cài đặt ruby không thành công với lỗi sau:
==> 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
Tập lệnh sau đó kết thúc. Tôi có thể mở các vm với vagrant ssh
và sau đó chạy thành công rbenv install 2.2.1
, vì vậy tôi đoán rằng trong khi cung cấp một vỏ lang thang mới không thực sự đang được bắt đầu. Tôi đã có ấn tượng rằng điều này sẽ xảy ra với su vagrant
ngay trước rbenv install 2.2.1
.
Tôi có thể làm gì để đảm bảo rằng trình bao mới được khởi tạo trong khi cấp phép này và lệnh rbenv
sẽ hoạt động?
Vui lòng xem xét gắn cờ câu trả lời của tôi là câu trả lời hợp lệ. Cảm ơn –