强制捆绑器在用户的主目录中安装gem

18 ruby-on-rails bundler

上次我正在尝试学习如何使用Ruby on Rails进行Web开发,并使用我的Arch GNU/Linux机器.Arch的策略要求将gem安装在用户目录中,而不是通常的系统范围位置.但是,它与bundler(尝试在系统范围内安装gem)的默认行为相矛盾.所以每当我运行rails new foo捆绑包时都要求我输入我的root密码.

我想强制bundler在我的主目录中安装Rails所需的gem.我尝试了运行,bundle install --path .bundle但它下载并再次安装所有Rails宝石,这显然是我不想做的.

你知道怎么做吗?

更新:最后我通过跑步获得了预期的效果bundle install --path ~/.gem.

Hol*_*off 12

您可以设置环境变量$BUNDLE_PATH$GEM_HOME.Bundler将使用它们并在那里安装你的宝石.如果您指定--path my_path,Bundler将记住此值以供将来安装.

[...]但它会再次下载并安装所有Rails宝石,这显然是我不想做的事情.

如果你想使用你的宝石的缓存版本--local.


smo*_*yth 5

执行此操作的新方法是运行

bundle config set --local path '/home/username/.gem'
bundle install
Run Code Online (Sandbox Code Playgroud)

--path参数已被弃用。


Zaz*_*Zaz 5

更新的方法是:

bundle config set --local path '/home/username/.local/share/gem'
bundle install
Run Code Online (Sandbox Code Playgroud)

这与gem install --user-install大多数现代操作系统上的 gems 放置位置相匹配,并遵循整理主目录的趋势。