Vagrant - 安装Ruby Gems

时间:2016-01-07 03:25:16

标签: ruby rubygems vagrant vagrantfile

运行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,但由于权限而无法正常工作。

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信以下作品

在您的Vagrant文​​件中

config.vm.provision "shell", path: "provision/install-gems.sh", privileged: false

传递特权问题

gem install --user-install ....

然后将为您的用户安装宝石,并在运行gem list

时可用
相关问题