我的主目录是已挂载的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
...
答案 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建议的民间捆绑。