Как изменить расположение каталога ~ / .bundler? - PullRequest
2 голосов
/ 28 апреля 2011

Мой домашний каталог - это смонтированный общий ресурс 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 ]

3 голосов
/ 28 апреля 2011

Вы всегда можете настроить способ установки bundle, передав аргумент установщику:

bundle install --path /some/path

Это полезно для случая, который вы выделите, или для случаев, когда общий каталог будет использоваться разными платформами или версиями Ruby.

Обновление

Должна быть возможность изменить положение каталога ~/.bundler, установив переменную окружения $HOME, которая будет работать, что в действительности изменяет то, что ~ интерпретирует как. Похоже, что Bundler использует метод Gem.user_home метод, чтобы определить, куда поместить этот файл, поэтому, если вы можете подделать его, вы настроены.

Это может быть так просто, как:

HOME=/some/home bundle install --path /some/path
1 голос
/ 28 апреля 2011

Может быть, вы можете создать символическую ссылку для .bundler и указать ее в папке, в которую может писать bunlder.Или же вам придется воспользоваться народным комплектовщиком, как предложено Ноблом.

1 голос
/ 28 апреля 2011

Похоже, это довольно жестко, если вы посмотрите файл bundler.rb . Я бы сказал, что лучше всего было бы раскошелиться на Bundler и внести изменения самостоятельно. Или вы всегда можете отправить запрос на добавление .

...