2013-11-13 4 views
36

Всякий раз, когда я bundle install все драгоценные камни получить установлен наПочему Bundle Install устанавливает драгоценные камни в поставщике/комплекте?

app_dir/vendor/bundle 

пути и потребляет нагрузки дискового пространства. Я также попытался установить драгоценные камни, где он должен получить установленные gemsets т.е. в то время как развитие, это:

bundle install --no-deployement 

, но это не работает для меня и installeing драгоценных камней на vendor/bundle. Как я могу заставить его быть установленным глобально для всех приложений или в месте расположения рубиновых гемселей? Я также попытался удалить .bundle/config, но ничего не изменилось.

Я использую:

rvm version: 1.23.14 
ruby version: 2.0.0-p247 
rails 3.2.13 

Вот мой ~/.bash_profile:

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 
eval "$(rbenv init -)" 
alias pg='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log' 

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

Мои ~/.bashrc:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting 

Некоторые другие данные, которые вы, возможно, потребуется:

[email protected] ~/Projects/qe (develop)*$ which bundle 
/Users/aman/.rvm/gems/[email protected]/bin/bundle 

[email protected] ~/Projects/qe (develop)*$ rbenv which bundle 
/Users/aman/.rbenv/versions/2.0.0-p247/bin/bundle 

[email protected] ~/Projects/qe (develop)*$ rbenv which ruby 
/Users/aman/.rbenv/versions/2.0.0-p247/bin/ruby 

[email protected] ~/Projects/qe (develop)*$ rbenv gemset active 
rbenv: NO such command `gemset' 

[email protected] ~/Projects/qe (develop)*$ which rails 
/Users/aman/.rvm/gems/[email protected]/bin/rails 

Я попробовал это также, но не помогло:

bundle install --system 

и удаление .bundle каталога.

Пожалуйста, помогите мне в установке драгоценных камней в gemset не vendor/bundle или по умолчанию.

ответ

7

Использование bundle env для просмотра пути и перевяжите конфигурацию

После этого сета расслоения пути к ~/.rvm/gems/ruby-2.0.0-p247 так:

bundle install --path ~/.rvm/gems/ruby-2.0.0-p247 

, который является глобальным, а также вы можете использовать свой собственный путь.

Сообщение это bundle install никогда не будет нуждаться в path снова и всегда будет устанавливать все ваши драгоценные камни в этом directory(~/.rvm/gems/ruby-2.0.0-p247 in my case) для этого приложения не app_folder/vendor/bundle

20

Попробуйте установить с помощью

bundle install --system 

Я думаю, что первоначально пакет установки был запущен с --path флагом и Bundler Теперь rememebers что confguration.

От Bundler man page

Некоторые параметры запоминаются между вызовами расслоении установить и с помощью среды выполнения Bundler.

Последующие вызовы для установки пакета устанавливают драгоценные камни в каталог, первоначально отправленный в --path. Время выполнения Bundler будет искать драгоценные камни в этом месте. Вы можете вернуть эту опцию, выполнив команду bundle install --system.

EDIT: Как уже упоминалось в комментариях ниже, а также в противном случае это устанавливает систему жемчужин в ширину. Если вы используете rvm и т. Д. Для управления своей средой для разных приложений, отметьте @IuriG's answer, упомянутый выше.

+0

попробовал это, но не помог. –

+0

@AmandeepSingh Интересно. Итак, что произойдет, если вы попробуете указать другой путь - пример 'bundle install --path sample'? Я предполагаю, что это тоже не сработает. Если это так, можете ли вы переустановить комплектщик, используя 'gem unistall bundler' и' gem install bundler'? –

+0

Я тоже это сделал. Даже я снова установил rvm и ruby. –

57

В папке проекта у вас будет каталог .bundle, который содержит конфигурацию для bundler. попробуйте удалить эту папку. он должен вернуть путь установки для ваших драгоценных камней к общесистемным настройкам.

В случае, когда вы просто хотите отредактировать путь установки, открытие .bundle/config с вашим любимым редактором должно показать вам путь к vendor/bundle. Удаление этой строки приведет к ее восстановлению по умолчанию, не удаляя другие конфигурации, которые у вас могут быть.

Кроме того, еще один менее частый сценарий - ваши системные настройки перепутаны. Согласно @NaoiseGolden:

Мне пришлось удалить .bundle из моей домашней папки (rm -rf ~/.bundle). Вы можете проверить свою конфигурацию bundle env

+1

пробовал это, но не помог. –

+2

Это решило проблему для меня. спасибо –

+1

Решил это для меня, а также - Спасибо! – Rubinsh

6

Попробуйте запустить bundle env. Это скажет вам, где установлена ​​конфигурация пути.

+0

Это помогло в просмотре пути. Теперь я изменил путь пакета к ~/.rvm/gems/ruby-2.0.0-p247 и сделал это не для установки в поставщике/комплекте –

+0

Если вы пытаетесь установить в место расположения системы, я рекомендую установить _not_ внутри конфигурации пучка. Вы можете просто удалить строку. Bundler по умолчанию использует ваш 'GEM_HOME'. –

2

Прежде всего, acording к вашей информации, кажется, что вы установили и rvm и rbenv. Это very bad idea. Вы должны удалить один из них (rbenv + bundler работает как очарование для меня, не пытался rvm).

В отношении вашего вопроса проверьте .bundle/config в своем проекте, поскольку там находится вся конфигурация для связки с этим проектом (если он все еще удален, вы можете создать новый). Вы хотите добавить эту строку (или изменить ее, если ее уже есть): BUNDLE_DISABLE_SHARED_GEMS: '0' для обмена драгоценными камнями, они идут туда, где установлен ваш BUNDLE_PATH: (в моем случае).

Для глобального взгляда файла конфигурации в ~/.bundle/config

Кроме того, этот человек страница может быть полезным: bundle config

0

Для установки Gem в системе шириной избегая путь поставщика/пакет, просто запустите следующую команду в директории проекта

bundle install --system 
Смежные вопросы