Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
流浪者-安装Ruby Gems_Ruby_Rubygems_Vagrant_Vagrantfile - Fatal编程技术网

流浪者-安装Ruby Gems

流浪者-安装Ruby Gems,ruby,rubygems,vagrant,vagrantfile,Ruby,Rubygems,Vagrant,Vagrantfile,运行vagrant provision时,不要在用户环境中安装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

运行vagrant provision时,不要在用户环境中安装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
时,gem不会出现,但当我运行
sudo gem list
时,它们会出现,这是我不想看到的

如何在非根模式下安装gems?尝试在vagant文件中添加
privileged:false
,但由于特权而无法工作


谢谢

我相信下面的方法行得通

在你的流浪档案里

config.vm.provision "shell", path: "provision/install-gems.sh", privileged: false
通过特权问题

gem install --user-install ....

然后,gems将为您的用户安装,并在运行不起作用的
gem list

时可用,因为转到sudo环境,而不是用户环境。