bundle-config - Установить параметры конфигурации упаковщика
bundle config list
bundle config [get] NAME
bundle config [set] NAME VALUE
bundle config unset NAME
Эта команда позволяет вам взаимодействовать с системой конфигурации Bundler.
Bundler загружает параметры конфигурации в следующем порядке:
Локальная конфигурация (
Переменные среды (ENV)
Глобальная конфигурация (~/.bundle/config)
Конфигурация бандлера по умолчанию
выполнение
bundle config list
напечатает список всех конфигураций сборщика для текущего пакета и где эта конфигурация была установлена.
выполнение
bundle config get <name>
напечатает значение этого параметра конфигурации и где он был установлен.
выполнение
bundle config set <name> <value>
по умолчанию устанавливается локальная конфигурация при выполнении из локального приложения, в противном случае устанавливается глобальная конфигурация. См. варианты --local и --global ниже.
выполнение
bundle config set --local <name> <value>
установит эту конфигурацию в каталоге для локального приложения. Конфигурация будет храниться в
выполнение
bundle config set --global <name> <value>
установит для этой конфигурации значение, указанное для всех пакетов, выполняемых от имени текущего пользователя. Конфигурация будет сохранена в ~/.bundle/config. Если имя уже задано, имя будет переопределено, и пользователь получит предупреждение.
выполнение
bundle config unset <name>
удалит конфигурацию как в локальных, так и в глобальных источниках.
выполнение
bundle config unset --global <name>
удалит конфигурацию только из пользовательской конфигурации.
выполнение
bundle config unset --local <name>
удалит конфигурацию только из локального приложения.
Выполнение пакета с набором переменных среды BUNDLE_IGNORE_CONFIG приведет к игнорированию всей конфигурации.
Флаги, передаваемые bundle install или среде выполнения Bundler, такие как --path foo или --without production, запоминаются между командами и сохраняются в конфигурация вашего локального приложения (обычно ./.bundle/config).
Однако это будет изменено в сборщике 3, поэтому лучше не полагаться на такое поведение. Если эти параметры необходимо запомнить, лучше установить их с помощью конфигурации пакета (например, набор конфигурации пакета --local path foo).
Параметры, которые можно настроить, следующие:
Создает каталог (по умолчанию ~/bin) и помещает туда все исполняемые файлы из драгоценного камня. Эти исполняемые файлы запускаются в контексте Bundler. Если он используется, вы можете добавить этот каталог в переменную PATH вашей среды. Например, если гем rails поставляется с исполняемым файлом rails, этот флаг создаст исполняемый файл bin/rails, который гарантирует, что все указанные зависимости будут быть решены с помощью связанных драгоценных камней.
В режиме развертывания Bundler «развернет» пакет для производственного использования. Внимательно проверьте, хотите ли вы включить этот параметр в средах разработки или тестирования.
Разделенный пробелами список групп для установки только гемов указанных групп.
Место для установки указанных гемов. По умолчанию используется настройка Rubygems. Bundler разделяет это расположение с Rubygems, gem install ... также будет иметь установленный там gem. Таким образом, gems, установленные без параметра --path..., будут отображаться при вызове gem list. Соответственно, драгоценные камни, установленные в других местах, не будут перечислены.
Разделенный пробелами список групп, ссылающихся на драгоценные камни, которые следует пропустить во время установки.
Разделенный пробелами список необязательных групп, ссылающихся на гемы, которые нужно включить во время установки.
Вы можете использовать bundle config, чтобы дать Bundler флаги для передачи установщику gem каждый раз, когда бандлер пытается установить определенный gem.
Очень распространенный пример, гем mysql, требует, чтобы пользователи Snow Leopard передали флаги конфигурации в gem install, чтобы указать, где найти исполняемый файл mysql_config.
gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Поскольку конкретное расположение этого исполняемого файла может меняться от машины к машине, вы можете указать эти флаги для каждой машины отдельно.
bundle config set --global build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
После запуска этой команды каждый раз, когда сборщику необходимо установить гем mysql, он будет передавать указанные вами флаги.
Ключи конфигурации в сборщике имеют две формы: каноническую форму и форму переменной среды.
Например, передача флага --without в команду bundle install(1) bundle-install.1.html запрещает Bundler устанавливать определенные группы, указанные в Gemfile(5). Bundler сохраняет это значение в app/.bundle/config, чтобы вызовы Bundler.setup не пытались найти драгоценные камни из Gemfile, который вы не устанавливал. Кроме того, последующие вызовы bundle install(1) bundle-install.1.html запоминают этот параметр и пропускают эти группы.
Каноническая форма этой конфигурации — "без". Чтобы преобразовать каноническую форму в форму переменной среды, начните ее с заглавной буквы и добавьте BUNDLE_. Форма переменной среды без — BUNDLE_WITHOUT.
Любые точки в ключах конфигурации должны быть заменены двумя символами подчеркивания при установке через переменные среды. Ключ конфигурации local.rack становится переменной среды BUNDLE_LOCAL__RACK.
Ниже приведен список всех ключей конфигурации и их назначение. Вы можете узнать больше об их работе в пакетной установке(1) bundle-install.1.html.
В режиме развертывания разрешите изменение учетных данных на источник драгоценного камня. Пример: https://some.host.com/gems/path/ -> https://user_name:password@some.host.com/gems/path
Разрешить Bundler использовать кэшированные данные при установке без доступа к сети.
Автоматически запускать bundle clean после установки, если не задан явный путь и Bundler не устанавливается в системные гемы.
Автоматически запускать установку пакета при отсутствии драгоценных камней.
Установите исполняемые файлы из драгоценных камней в комплекте в указанный каталог. По умолчанию false.
Кэшировать все гемы, включая гемы path и git. Это должно быть явно настроено для сборщика 1 и сборщика 2, но будет использоваться по умолчанию для сборщика 3.
Кэшируйте драгоценные камни для всех платформ.
Каталог, в который упаковщик будет помещать кэшированные драгоценные камни при запуске пакета сборки, и этот упаковщик будет искать его при установке драгоценных камней. По умолчанию используется vendor/cache.
Должен ли Bundler запускать очистку пакета автоматически после установки пакета.
Консоль, с которой запускается консоль объединения. По умолчанию используется irb.
Будет ли установка пакета без явного аргумента --path по умолчанию устанавливать драгоценные камни в .bundle.
Запретить изменения в Gemfile. Когда Gemfile изменен, а файл блокировки не обновлен, выполнение команд Bundler будет заблокировано.
Разрешить установку гемов, даже если они не соответствуют контрольной сумме, предоставленной RubyGems.
Не позволяйте Bundler использовать load для запуска исполняемого файла в процессе bundle exec.
Разрешить Bundler использовать локальное переопределение git без ветки, указанной в Gemfile.
Разрешить Bundler использовать локальное переопределение git, не проверяя, присутствует ли ревизия, присутствующая в файле блокировки, в репозитории.
Не позволяйте Bundler получать доступ к драгоценным камням, установленным в обычном местоположении RubyGems.
Не позволяйте Bundler проверять, доступна ли более новая версия Bundler на rubygems.org.
Игнорируйте платформу текущего компьютера и устанавливайте только ruby драгоценные камни платформы. В результате гемы с нативными расширениями будут скомпилированы из исходников.
Запретить изменения в Gemfile. Когда Gemfile изменен, а файл блокировки не обновлен, выполнение команд Bundler будет заблокировано. По умолчанию используется значение true, когда используется --deployment.
Устанавливает имя пользователя или организацию GitHub, которые будут использоваться в файле README при создании нового гема с помощью команды bundle gem. Его можно переопределить, передав явный флаг --github-username в bundle gem.
Устанавливает параметр --key для gem push при использовании команды rake release с частным сервером gemstash.
Имя файла, который упаковщик должен использовать в качестве Gemfile. Это расположение этого файла также устанавливает корень проекта, который используется, среди прочего, для разрешения относительных путей в Gemfile. По умолчанию упаковщик будет искать в текущем рабочем каталоге, пока не найдет Gemfile.
Должен ли Bundler кэшировать все драгоценные камни глобально, а не локально для установки установки Ruby.
Когда установлено, никакие запросы на финансирование не будут распечатаны.
Если установлено, сообщения после установки не печатаются. Чтобы отключить один драгоценный камень, используйте запись через точку, например ignore_messages.httparty true.
Создайте gems.rb вместо Gemfile при запуске bundle init.
Количество драгоценных камней, которые Bundler может установить параллельно. По умолчанию количество доступных процессоров.
Должен ли комплектный пакет пропускать установку гемов.
Должен ли Bundler оставлять устаревшие драгоценные камни необрезанными при кэшировании.
Разделенный пробелами список групп для установки только гемов указанных групп.
Место на диске, где будут располагаться все драгоценные камни в вашем комплекте, независимо от значений $GEM_HOME или $GEM_PATH. Пакетные драгоценные камни, не найденные в этом месте, будут установлены с помощью установки пакета. По умолчанию используется Gem.dir. Когда используется --deployment, по умолчанию используется vendor/bundle.
Будет ли Bundler устанавливать драгоценные камни в системный путь по умолчанию (Gem.dir).
Делает --path относительно CWD вместо Gemfile.
Включите экспериментальную систему плагинов Bundler.
Предпочитайте обновление только до следующей версии исправления во время обновлений. Делает вызовы bundle update эквивалентными bundle update --patch.
Вывести только номер версии из bundler --version.
Количество перенаправлений, разрешенных для сетевых запросов. По умолчанию 5.
Количество повторных неудачных сетевых запросов. По умолчанию 3.
Попросите Bundler.setup сделать метод Kernel#gem общедоступным, даже если RubyGems объявляет его закрытым.
Имя программы, которая должна вызываться для сгенерированных binstub. По умолчанию используется имя установки ruby, используемое для создания binstub.
Должен ли Bundler отключать предупреждения об устаревании для поведения, которое будет изменено в следующей основной версии.
Отключите предупреждение, которое Bundler печатает при установке драгоценных камней с правами root.
Путь к назначенному файлу сертификата ЦС или папке, содержащей несколько сертификатов для доверенных ЦС в формате PEM.
Путь к назначенному файлу, содержащему сертификат клиента X.509 и ключ в формате PEM.
Режим проверки SSL, который Bundler использует при отправке HTTPS-запросов. По умолчанию для проверки пира.
Избегайте вывода сообщений Using... во время установки, если версия гема не изменилась.
Место, куда RubyGems устанавливает binstubs. По умолчанию используется Gem.bindir.
Количество секунд, разрешенных до истечения времени ожидания для сетевых запросов. По умолчанию 10.
Требовать передачи --all в обновление пакета, когда все должно быть обновлено, и запретить передачу параметров в обновление пакета.
Фрагмент пользовательского агента Bundler включает в запросы API.
Разделенный : список групп, для которых должен быть установлен сборщик gems.
Разделенный : список групп, сборщик gems которых не должен устанавливать.
Как правило, эти параметры следует устанавливать для каждого приложения с помощью соответствующего флага для пакета install(1) bundle-install.1.html или пакета cache(1) bundle-cache. 1.html команда.
Вы можете установить их глобально либо через переменные среды, либо через конфигурацию пакета, в зависимости от того, что предпочтительнее для вашей настройки. Если вы используете оба варианта, переменные окружения будут иметь преимущество перед глобальными параметрами.
Bundler также позволяет вам работать с репозиторием git локально вместо использования удаленной версии. Этого можно добиться, настроив локальное переопределение:
bundle config set --local local.GEM_NAME /path/to/local/git/repository
Например, чтобы использовать локальный репозиторий Rack, разработчик может вызвать:
bundle config set --local local.rack ~/Work/git/rack
Теперь вместо проверки удаленного репозитория git будет использоваться локальное переопределение. Подобно источнику пути, каждый раз, когда изменяется локальный репозиторий git, Bundler автоматически принимает изменения. Это означает, что фиксация в локальном репозитории git обновит версию в Gemfile.lock до версии локального репозитория git. Это требует такого же внимания, как и подмодули git. Перед отправкой на удаленный сервер необходимо убедиться, что локальное переопределение было отправлено, иначе вы можете указать на фиксацию, которая существует только на вашем локальном компьютере. Вам также потребуется CGI экранировать ваши имена пользователей и пароли.
Bundler выполняет множество проверок, чтобы гарантировать, что разработчик не будет работать с недействительными ссылками. В частности, мы заставляем разработчика указывать ветку в Gemfile, чтобы использовать эту функцию. Если ветка, указанная в Gemfile, и текущая ветка в локальном репозитории git не совпадают, Bundler прервется. Это гарантирует, что разработчик всегда работает с правильными ветвями, и предотвращает случайную блокировку другой ветки.
Наконец, Bundler также гарантирует, что текущая версия в Gemfile.lock существует в локальном репозитории git. Делая это, Bundler заставляет вас получать последние изменения в пультах.
Bundler поддерживает переопределение источников драгоценных камней с помощью зеркал. Это позволяет вам настроить rubygems.org в качестве источника драгоценных камней в вашем Gemfile, в то же время используя свое зеркало для извлечения драгоценных камней.
bundle config set --global mirror.SOURCE_URL MIRROR_URL
Например, чтобы использовать зеркало https://rubygems.org, размещенное по адресу https://example.org:
bundle config set --global mirror.https://rubygems.org https://example.org
Каждое зеркало также предоставляет настройку тайм-аута резервного копирования. Если зеркало не отвечает в течение резервного тайм-аута, Bundler попытается использовать исходный сервер вместо зеркала.
bundle config set --global mirror.SOURCE_URL.fallback_timeout TIMEOUT
Например, чтобы вернуться к rubygems.org через 3 секунды:
bundle config set --global mirror.https://rubygems.org.fallback_timeout 3
Время ожидания возврата по умолчанию составляет 0,1 секунды, но в настоящее время этот параметр может принимать только целые секунды (например, 1, 15 или 30).
Bundler позволяет вам настроить учетные данные для любого источника драгоценных камней, что позволяет вам не помещать секреты в ваш Gemfile.
bundle config set --global SOURCE_HOSTNAME USERNAME:PASSWORD
Например, чтобы сохранить учетные данные пользователя claudette для источника драгоценного камня на gems.longerous.com, вы должны запустить:
bundle config set --global gems.longerous.com claudette:s00pers3krit
Или вы можете установить учетные данные в качестве переменной среды следующим образом:
export BUNDLE_GEMS__LONGEROUS__COM="claudette:s00pers3krit"
Для драгоценных камней с источником git с URL-адресом HTTP (S) вы можете указать учетные данные следующим образом:
bundle config set --global https://github.com/rubygems/rubygems.git username:password
Или вы можете установить учетные данные в качестве переменной среды следующим образом:
export BUNDLE_GITHUB__COM=username:password
Это особенно полезно для частных репозиториев на хостах, таких как GitHub, где вы можете использовать личные токены OAuth:
export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic
Обратите внимание, что любые настроенные учетные данные будут отредактированы информативными командами, такими как bundle config list или bundle config get, если вы не используете флаг --parseable. . Это делается для того, чтобы избежать непреднамеренной утечки учетных данных при копировании и вставке выходных данных упаковщика.
Также обратите внимание, что для обеспечения нормального сопоставления между допустимыми именами переменных среды и допустимыми именами хостов упаковщик выполняет следующие преобразования:
Любые эти символы в имени хоста сопоставляются с двойным тире (__) в соответствующей переменной среды.
Это означает, что если у вас есть сервер gem с именем my.gem-host.com, вам потребуется использовать переменную BUNDLE_MY__GEM___HOST__COM для настройки учетных данных для него через ENV.
Каталоги home, config, cache и plugin могут быть настроены с помощью переменных среды. Расположение по умолчанию для домашнего каталога Bundler — ~/.bundle, от которого по умолчанию наследуются все каталоги. Ниже описаны доступные переменные среды и их значения по умолчанию.
BUNDLE_USER_HOME : $HOME/.bundle
BUNDLE_USER_CACHE : $BUNDLE_USER_HOME/cache
BUNDLE_USER_CONFIG : $BUNDLE_USER_HOME/config
BUNDLE_USER_PLUGIN : $BUNDLE_USER_HOME/plugin