运行vagrant配置时,不要在用户环境中安装ruby gems,而是在root用户环境中安装。
这是我的流浪档案:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "scotch/box"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = "scotchbox"
config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"]
# Optional NFS. Make sure to remove other synced_folder line too
#config.vm.synced_folder ".", "/var/www", :nfs => { :mount_options => ["dmode=777","fmode=666"] }
config.vm.provision "shell", path: "provision/install.sh"
config.vm.provision "shell", path: "provision/install-gems.sh"
end
和install-gems.sh:
#!/usr/bin/env bash
echo "- install sass ..."
gem install sass
echo "- install sass done"
echo "- install compass ..."
gem install compass
echo "- install compass done"
echo "- install bootstrap-sass ..."
gem install bootstrap-sass
echo "- install bootstrap-sass done"
当我运行gem list
时,宝石不会出现,但是当我运行sudo gem list
时,他们会这样做,我不想这样做。
我如何在vagrant以非root模式安装gem?尝试在vagant文件中添加privileged: false
,但由于权限而无法正常工作。
谢谢!
答案 0 :(得分:0)
我相信以下作品
在您的Vagrant文件中
config.vm.provision "shell", path: "provision/install-gems.sh", privileged: false
传递特权问题
gem install --user-install ....
然后将为您的用户安装宝石,并在运行gem list