Подтвердить что ты не робот

Почему Bundle Install устанавливает драгоценные камни в поставщике/комплекте?

Всякий раз, когда я делаю bundle install, все драгоценные камни устанавливаются в

app_dir/vendor/bundle

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

bundle install --no-deployement

но это не работает для меня и инсталирует драгоценные камни в 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 или по умолчанию.

4b9b3361

Ответ 1

Используйте 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

Ответ 2

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

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

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

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

Ответ 3

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

bundle install --system

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

Из связки справочная страница

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

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

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

Ответ 4

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

Ответ 5

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

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

Для глобального файла конфигурации смотрите ~/.bundle/config

Также эта служебная страница может быть полезной: комплект конфигурации

Ответ 6

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

bundle install --system