如何更改〜/ .bundler目录位置?

时间:2011-04-27 21:01:17

标签: ruby-on-rails ruby bundler

我的主目录是已挂载的NFS共享,本地根目录没有权限进入我的用户目录,当捆绑程序删除缓存的文件夹时,它会导致一些错误。 (参见下面“捆绑安装”的示例输出。)

如果可能的话,我想将〜/ .bundler目录移动到本地磁盘。我已经能够移动我的gems和rvm文件夹了,但我不能为我的生活找出更改bundler目录的位置。

任何人都知道怎么做?

$ bundle install
Checking out files: 100% (140/140), done.
Checking out files: 100% (9/9), done.
Fetching source index for http://rubygems.org/
Enter your password to install the bundled RubyGems to your system: 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/rake-0.8.7.gem': Permission denied
Using rake (0.8.7) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/abstract-1.0.0.gem': Permission denied
Using abstract (1.0.0) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/activesupport-3.0.7.gem': Permission denied
Using activesupport (3.0.7) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/builder-2.1.2.gem': Permission denied
Using builder (2.1.2) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/i18n-0.5.0.gem': Permission denied
Using i18n (0.5.0) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/activemodel-3.0.7.gem': Permission denied
Using activemodel (3.0.7) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/erubis-2.6.6.gem': Permission denied
Using erubis (2.6.6) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/rack-1.2.2.gem': Permission denied
Using rack (1.2.2) 
mv: cannot remove `/auto/home2/borgnk/.bundler/tmp/9517/cache/rack-mount-0.6.14.gem': Permission denied
...

3 个答案:

答案 0 :(得分:3)

您始终可以通过将参数传递给安装程序来自定义bundle的安装方式:

bundle install --path /some/path

这对于您突出显示的情况很有用,或者在不同平台或Ruby版本将使用共享目录的情况下。

<强>更新

应该可以通过将~/.bundler环境变量设置为可行的方式来重新定位$HOME目录,这实际上会改变~解释为的内容。 Bundler似乎使用方法Gem.user_home方法来确定放置此文件的位置,因此如果您可以伪造它,那么您已设置。

这可以很简单:

HOME=/some/home bundle install --path /some/path

答案 1 :(得分:1)

如果您查看bundler.rb文件,它看起来相当硬编码。我想说你最好的选择是分叉Bundler并自己做出改变。或者你可以随时submit a feature request

答案 2 :(得分:1)

可以为.bundler创建一个符号链接,并将其指向bunlder可以写入的文件夹。否则你将不得不像aNoble建议的民间捆绑。