bundle-config - Définir les options de configuration du groupeur
bundle config list
bundle config [get] NAME
bundle config [set] NAME VALUE
bundle config unset NAME
Cette commande vous permet d'interagir avec le système de configuration de Bundler.
Bundler charge les paramètres de configuration dans cet ordre :
Configuration locale (
Variables environnementales (ENV)
Configuration globale (~/.bundle/config)
Configuration par défaut du groupeur
Exécution
bundle config list
imprimera une liste de toutes les configurations de bundler pour le bundle actuel, et où cette configuration a été définie.
Exécution
bundle config get <name>
imprimera la valeur de ce paramètre de configuration et l'endroit où il a été défini.
Exécution
bundle config set <name> <value>
par défaut, la configuration locale s'exécute à partir d'une application locale, sinon il définira la configuration globale. Voir les options --local et --global ci-dessous.
Exécution
bundle config set --local <name> <value>
définira cette configuration dans le répertoire de l'application locale. La configuration sera stockée dans
Exécution
bundle config set --global <name> <value>
définira cette configuration sur la valeur spécifiée pour tous les bundles exécutés en tant qu'utilisateur actuel. La configuration sera stockée dans ~/.bundle/config. Si nom est déjà défini, nom sera remplacé et l'utilisateur sera averti.
Exécution
bundle config unset <name>
supprimera la configuration dans les sources locales et globales.
Exécution
bundle config unset --global <name>
supprimera la configuration uniquement de la configuration utilisateur.
Exécution
bundle config unset --local <name>
supprimera la configuration uniquement de l'application locale.
L'exécution de l'ensemble avec la variable d'environnement BUNDLE_IGNORE_CONFIG définie l'amènera à ignorer toute la configuration.
Les indicateurs transmis à bundle install ou à l'environnement d'exécution Bundler, tels que --path foo ou --without production, sont mémorisés entre les commandes et enregistrés dans la configuration de votre application locale (normalement, ./.bundle/config).
Cependant, cela sera modifié dans le bundler 3, il est donc préférable de ne pas compter sur ce comportement. Si ces options doivent être mémorisées, il est préférable de les définir à l'aide de bundle config (par exemple, bundle config set --local path foo).
Les options configurables sont :
Crée un répertoire (par défaut ~/bin) et y place tous les exécutables de la gemme. Ces exécutables s'exécutent dans le contexte de Bundler. S'il est utilisé, vous pouvez ajouter ce répertoire à la variable PATH de votre environnement. Par exemple, si la gemme rails est fournie avec un exécutable rails, cet indicateur créera un exécutable bin/rails qui garantit que toutes les dépendances référencées seront être résolu en utilisant les gemmes groupées.
En mode déploiement, Bundler "déploie" le bundle pour une utilisation en production. Veuillez vérifier attentivement si vous souhaitez activer cette option dans les environnements de développement ou de test.
Une liste de groupes séparés par des espaces pour installer uniquement les gemmes des groupes spécifiés.
Emplacement d'installation des gems spécifiés. C'est par défaut le réglage de Rubygems. Bundler partage cet emplacement avec Rubygems, gem install ... y installera également gem. Par conséquent, les gemmes installées sans paramètre --path ... apparaîtront en appelant liste des gemmes. En conséquence, les gemmes installées à d'autres endroits ne seront pas répertoriées.
Une liste séparée par des espaces de groupes référençant des gemmes à ignorer lors de l'installation.
Une liste séparée par des espaces de groupes facultatifs référençant des gemmes à inclure lors de l'installation.
Vous pouvez utiliser bundle config pour donner à Bundler les drapeaux à transmettre au programme d'installation de la gemme chaque fois que bundler essaie d'installer une gemme particulière.
Un exemple très courant, le gem mysql, oblige les utilisateurs de Snow Leopard à transmettre des indicateurs de configuration à gem install pour spécifier où trouver l'exécutable mysql_config.
gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_configÉtant donné que l'emplacement spécifique de cet exécutable peut changer d'une machine à l'autre, vous pouvez spécifier ces indicateurs machine par machine.
bundle config set --global build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_configAprès avoir exécuté cette commande, chaque fois que le bundler doit installer le gem mysql, il transmettra les drapeaux que vous avez spécifiés.
Les clés de configuration dans le bundler ont deux formes : la forme canonique et la forme de variable d'environnement.
Par exemple, passer le drapeau --sans à bundle install(1) bundle-install.1.html empêche Bundler d'installer certains groupes spécifiés dans le Gemfile(5). Bundler conserve cette valeur dans app/.bundle/config afin que les appels à Bundler.setup n'essayent pas de trouver des gemmes à partir du Gemfile que vous n'a pas installé. De plus, les appels ultérieurs à bundle install(1) bundle-install.1.html se souviennent de ce paramètre et ignorent ces groupes.
La forme canonique de cette configuration est "sans". Pour convertir la forme canonique en forme de variable d'environnement, mettez-la en majuscule et ajoutez BUNDLE_. La forme de variable d'environnement de "sans" est BUNDLE_WITHOUT.
Tous les points dans les clés de configuration doivent être remplacés par deux traits de soulignement lors de leur définition via des variables d'environnement. La clé de configuration local.rack devient la variable d'environnement BUNDLE_LOCAL__RACK.
Voici une liste de toutes les clés de configuration et leur objectif. Vous pouvez en savoir plus sur leur fonctionnement dans bundle install(1) bundle-install.1.html.
En mode déploiement, autorisez la modification des informations d'identification sur la source d'un gem. Ex : https://some.host.com/gems/path/ -> https://user_name:password@some.host.com/gems/path
Autoriser Bundler à utiliser les données mises en cache lors de l'installation sans accès au réseau.
Exécutez automatiquement bundle clean après l'installation lorsqu'un chemin explicite n'a pas été défini et que Bundler ne s'installe pas dans les gems système.
Exécutez automatiquement l'installation groupée lorsqu'il manque des gemmes.
Installez les exécutables des gems du bundle dans le répertoire spécifié. La valeur par défaut est false.
Mettez en cache toutes les gemmes, y compris les gemmes path et git. Cela doit être explicitement configuré sur le bundler 1 et le bundler 2, mais sera la valeur par défaut sur le bundler 3.
Gemmes de cache pour toutes les plateformes.
Le répertoire dans lequel le bundler placera les gemmes en cache lors de l'exécution du paquet groupé, et ce bundler regardera lors de l'installation des gemmes. Par défaut, fournisseur/cache.
Si Bundler doit exécuter le nettoyage de l'ensemble automatiquement après l'installation de l'ensemble.
La console qui console groupée démarre. Par défaut, irb.
Indique si une installation groupée sans argument explicite --path installe par défaut les gemmes dans .bundle.
Interdire les modifications apportées au Gemfile. Lorsque le Gemfile est modifié et que le fichier de verrouillage n'a pas été mis à jour, l'exécution des commandes Bundler sera bloquée.
Autoriser l'installation de gems même si elles ne correspondent pas à la somme de contrôle fournie par RubyGems.
Empêchez Bundler d'utiliser load pour lancer un exécutable en cours dans bundle exec.
Autoriser Bundler à utiliser un remplacement git local sans branche spécifiée dans le Gemfile.
Autoriser Bundler à utiliser un remplacement git local sans vérifier si la révision présente dans le fichier de verrouillage est présente dans le référentiel.
Empêche Bundler d'accéder aux gemmes installées à l'emplacement normal de RubyGems.
Empêche Bundler de vérifier si une version plus récente de Bundler est disponible sur rubygems.org.
Ignorez la plate-forme de la machine actuelle et installez uniquement les gemmes de la plate-forme ruby. En conséquence, les gemmes avec des extensions natives seront compilées à partir de la source.
Interdire les modifications apportées au Gemfile. Lorsque le Gemfile est modifié et que le fichier de verrouillage n'a pas été mis à jour, l'exécution des commandes Bundler sera bloquée. La valeur par défaut est true lorsque --deployment est utilisé.
Définit un nom d'utilisateur ou une organisation GitHub à utiliser dans le fichier README lorsque vous créez un nouveau gem via la commande bundle gem. Il peut être remplacé en passant un indicateur explicite --github-username à bundle gem.
Définit le paramètre --key pour gem push lors de l'utilisation de la commande rake release avec un serveur gemstash privé.
Le nom du fichier que le bundler doit utiliser comme Gemfile. Cet emplacement de ce fichier définit également la racine du projet, qui est utilisée pour résoudre les chemins relatifs dans le Gemfile, entre autres. Par défaut, bundler recherchera à partir du répertoire de travail actuel jusqu'à ce qu'il trouve un Gemfile.
Si Bundler doit mettre en cache toutes les gemmes globalement, plutôt que localement dans l'installation d'installation de Ruby.
Lorsqu'il est défini, aucune demande de financement ne sera imprimée.
Lorsqu'il est défini, aucun message post-installation ne sera imprimé. Pour faire taire une seule gemme, utilisez la notation par points comme ignore_messages.httparty true.
Génère un gems.rb au lieu d'un Gemfile lors de l'exécution de bundle init.
Le nombre de gemmes que Bundler peut installer en parallèle. Par défaut, le nombre de processeurs disponibles.
Indique si le paquet groupé doit ignorer l'installation des gems.
Si Bundler doit laisser les gemmes obsolètes non élaguées lors de la mise en cache.
Une liste de groupes séparés par des espaces pour installer uniquement les gemmes des groupes spécifiés.
L'emplacement sur le disque où toutes les gemmes de votre lot seront situées, quelles que soient les valeurs $GEM_HOME ou $GEM_PATH. Les gemmes groupées introuvables à cet emplacement seront installées par installation groupée. Par défaut, Gem.dir. Lorsque --deployment est utilisé, la valeur par défaut est vendor/bundle.
Si Bundler installera les gems dans le chemin système par défaut (Gem.dir).
Rend --path relatif au CWD au lieu du Gemfile.
Activez le système de plug-in expérimental de Bundler.
Préférez la mise à jour uniquement vers la prochaine version du correctif lors des mises à jour. Rend les appels de mise à jour de bundle équivalents à bundler update --patch.
Afficher uniquement le numéro de version de bundler --version.
Le nombre de redirections autorisées pour les requêtes réseau. La valeur par défaut est 5.
Le nombre de tentatives de relance des requêtes réseau ayant échoué. La valeur par défaut est 3.
Demandez à Bundler.setup de rendre la méthode Kernel#gem publique, même si RubyGems la déclare comme privée.
Le nom du programme qui doit être appelé pour les binstubs générés. Par défaut, le nom d'installation ruby utilisé pour générer le binstub.
Si Bundler doit désactiver les avertissements d'obsolescence pour le comportement qui sera modifié dans la prochaine version majeure.
Désactivez l'avertissement que Bundler imprime lors de l'installation de gems en tant que root.
Chemin d'accès à un fichier ou dossier de certificat d'autorité de certification désigné contenant plusieurs certificats pour les autorités de certification approuvées au format PEM.
Chemin d'accès à un fichier désigné contenant un certificat client X.509 et une clé au format PEM.
Le mode de vérification SSL que Bundler utilise lors des requêtes HTTPS. Valeurs par défaut pour vérifier l'homologue.
Évitez d'imprimer des messages Using ... lors de l'installation lorsque la version d'une gemme n'a pas changé.
L'emplacement où RubyGems installe les binstubs. Par défaut, Gem.bindir.
Les secondes autorisées avant l'expiration des requêtes réseau. La valeur par défaut est 10.
Exiger le passage de --all à la mise à jour de l'ensemble lorsque tout doit être mis à jour, et interdire de ne transmettre aucune option à la mise à jour de l'ensemble.
Le fragment d'agent utilisateur personnalisé que Bundler inclut dans les demandes d'API.
Une liste de groupes séparés par : dont le bundle de gems doit être installé.
Une liste séparée par : des groupes dont le bundler de gemmes ne doit pas être installé.
En général, vous devez définir ces paramètres par application en utilisant l'indicateur applicable au bundle install(1) bundle-install.1.html ou bundle cache(1) bundle-cache. 1.html commande.
Vous pouvez les définir globalement via des variables d'environnement ou la configuration de l'ensemble, selon ce qui est préférable pour votre configuration. Si vous utilisez les deux, les variables d'environnement prévaudront sur les paramètres globaux.
Bundler vous permet également de travailler localement sur un référentiel git au lieu d'utiliser la version distante. Ceci peut être réalisé en configurant un remplacement local :
bundle config set --local local.GEM_NAME /path/to/local/git/repositoryPar exemple, pour utiliser un référentiel Rack local, un développeur pourrait appeler :
bundle config set --local local.rack ~/Work/git/rackDésormais, au lieu d'extraire le référentiel git distant, le remplacement local sera utilisé. Semblable à une source de chemin, chaque fois que le référentiel git local change, les modifications seront automatiquement récupérées par Bundler. Cela signifie qu'un commit dans le référentiel git local mettra à jour la révision dans le Gemfile.lock vers la révision du référentiel git local. Cela nécessite la même attention que les sous-modules git. Avant de pousser vers la télécommande, vous devez vous assurer que le remplacement local a été poussé, sinon vous risquez de pointer vers un commit qui n'existe que sur votre machine locale. Vous devrez également échapper CGI à vos noms d'utilisateur et mots de passe.
Bundler effectue de nombreuses vérifications pour s'assurer qu'un développeur ne travaillera pas avec des références invalides. En particulier, nous forçons un développeur à spécifier une branche dans le Gemfile afin d'utiliser cette fonctionnalité. Si la branche spécifiée dans le Gemfile et la branche actuelle dans le dépôt git local ne correspondent pas, Bundler s'arrêtera. Cela garantit qu'un développeur travaille toujours sur les bonnes branches et empêche le verrouillage accidentel sur une autre branche.
Enfin, Bundler s'assure également que la révision actuelle dans Gemfile.lock existe dans le référentiel git local. Ce faisant, Bundler vous oblige à récupérer les dernières modifications dans les télécommandes.
Bundler prend en charge le remplacement des sources de gemmes par des miroirs. Cela vous permet de configurer rubygems.org comme source de gemmes dans votre Gemfile tout en utilisant votre miroir pour récupérer les gemmes.
bundle config set --global mirror.SOURCE_URL MIRROR_URLPar exemple, pour utiliser un miroir de https://rubygems.org hébergé sur https://example.org :
bundle config set --global mirror.https://rubygems.org https://example.orgChaque miroir fournit également un paramètre de temporisation de repli. Si le miroir ne répond pas dans le délai de repli, Bundler essaiera d'utiliser le serveur d'origine au lieu du miroir.
bundle config set --global mirror.SOURCE_URL.fallback_timeout TIMEOUTPar exemple, pour revenir à rubygems.org après 3 secondes :
bundle config set --global mirror.https://rubygems.org.fallback_timeout 3Le délai d'attente de secours par défaut est de 0,1 seconde, mais le paramètre ne peut actuellement accepter que des secondes entières (par exemple, 1, 15 ou 30).
Bundler vous permet de configurer des informations d'identification pour n'importe quelle source de gemme, ce qui vous permet d'éviter de mettre des secrets dans votre Gemfile.
bundle config set --global SOURCE_HOSTNAME USERNAME:PASSWORDPar exemple, pour enregistrer les informations d'identification de l'utilisateur claudette pour la source de la gemme sur gems.longerous.com, vous exécuteriez :
bundle config set --global gems.longerous.com claudette:s00pers3kritOu vous pouvez définir les informations d'identification en tant que variable d'environnement comme ceci :
export BUNDLE_GEMS__LONGEROUS__COM="claudette:s00pers3krit"Pour les gems avec une source git avec une URL HTTP(S), vous pouvez spécifier des informations d'identification comme ceci :
bundle config set --global https://github.com/rubygems/rubygems.git username:passwordOu vous pouvez définir les informations d'identification en tant que variable d'environnement comme suit :
export BUNDLE_GITHUB__COM=username:passwordCeci est particulièrement utile pour les référentiels privés sur des hôtes tels que GitHub, où vous pouvez utiliser des jetons OAuth personnels :
export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basicNotez que toutes les informations d'identification configurées seront masquées par des commandes informatives telles que bundle config list ou bundle config get, sauf si vous utilisez l'indicateur --parseable . Cela permet d'éviter les fuites involontaires d'informations d'identification lors du copier-coller de la sortie du bundler.
Notez également que pour garantir un mappage sain entre les noms de variable d'environnement valides et les noms d'hôte valides, bundler effectue les transformations suivantes :
Tous ces caractères dans un nom d'hôte sont mappés sur un double tiret (__) dans la variable d'environnement correspondante.
Cela signifie que si vous avez un serveur gem nommé my.gem-host.com, vous devrez utiliser la variable BUNDLE_MY__GEM___HOST__COM pour configurer les informations d'identification pour celui-ci via ENV.
Les répertoires home, config, cache et plugin de Bundler peuvent être configurés via des variables d'environnement. L'emplacement par défaut du répertoire personnel de Bundler est ~/.bundle, dont tous les répertoires héritent par défaut. Ce qui suit décrit les variables d'environnement disponibles et leurs valeurs par défaut
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