【问题标题】:Vagrant - Install Ruby GemsVagrant - 安装 Ruby Gems
【发布时间】:2016-01-07 03:25:16
【问题描述】:

运行 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 时,宝石不会出现,但当我运行sudo gem list 时,它们会出现,我不想这样做。

如何在 vagrant 中以非 root 模式安装 gem?尝试在vagant文件中添加privileged: false,但由于权限原因无法使用。

谢谢!

【问题讨论】:

    标签: ruby rubygems vagrant vagrantfile


    【解决方案1】:

    我相信以下作品

    在你的 Vagrant 文件中

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

    通过权限问题

    gem install --user-install ....
    

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

    【讨论】:

    • 那不行,因为去sudo环境,不是用户环境。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多