bundle-config - manuale di riferimento, opzioni, esempi di comandi


NOME

bundle-config - Imposta le opzioni di configurazione del bundler

SINOSSI

bundle config list
bundle config [get] NAME
bundle config [set] NAME VALUE
bundle config unset NAME

DESCRIZIONE

Questo comando ti permette di interagire con il sistema di configurazione di Bundler.

Bundler carica le impostazioni di configurazione in questo ordine:

  1. Configurazione locale (/.bundle/config o $BUNDLE_APP_CONFIG/config)

  2. Variabili ambientali (ENV)

  3. Configurazione globale (~/.bundle/config)

  4. Configurazione predefinita del bundler

Esecuzione

bundle config list

stamperà un elenco di tutte le configurazioni del bundler per il bundle corrente e dove è stata impostata tale configurazione.

Esecuzione

bundle config get <name>

stamperà il valore di tale impostazione di configurazione e dove è stato impostato.

Esecuzione

bundle config set <name> <value>

per impostazione predefinita, imposta la configurazione locale se viene eseguito dall'interno di un'applicazione locale, altrimenti imposterà la configurazione globale. Vedi le opzioni --local e --global di seguito.

Esecuzione

bundle config set --local <name> <value>

imposterà tale configurazione nella directory per l'applicazione locale. La configurazione verrà archiviata in /.bundle/config. Se BUNDLE_APP_CONFIG è impostato, la configurazione verrà archiviata in $BUNDLE_APP_CONFIG/config.

Esecuzione

bundle config set --global <name> <value>

imposterà tale configurazione sul valore specificato per tutti i bundle eseguiti come utente corrente. La configurazione verrà memorizzata in ~/.bundle/config. Se nome è già impostato, nome verrà sovrascritto e l'utente verrà avvisato.

Esecuzione

bundle config unset <name>

eliminerà la configurazione in entrambe le origini locali e globali.

Esecuzione

bundle config unset --global <name>

eliminerà la configurazione solo dalla configurazione utente.

Esecuzione

bundle config unset --local <name>

eliminerà la configurazione solo dall'applicazione locale.

L'esecuzione del bundle con la variabile di ambiente BUNDLE_IGNORE_CONFIG impostata farà sì che ignori tutta la configurazione.

RICORDARE LE OPZIONI

I flag passati a bundle install o al runtime di Bundler, come --path foo o --without production, vengono ricordati tra i comandi e salvati in la configurazione della tua applicazione locale (normalmente, ./.bundle/config).

Tuttavia, questo verrà modificato nel bundler 3, quindi è meglio non fare affidamento su questo comportamento. Se queste opzioni devono essere ricordate, è meglio impostarle utilizzando bundle config (ad esempio, bundle config set --local path foo).

Le opzioni configurabili sono:

bin

Crea una directory (il valore predefinito è ~/bin) e posiziona lì tutti gli eseguibili dalla gemma. Questi eseguibili vengono eseguiti nel contesto di Bundler. Se utilizzata, puoi aggiungere questa directory alla variabile PATH del tuo ambiente. Ad esempio, se la gemma rails viene fornita con un eseguibile rails, questo flag creerà un eseguibile bin/rails che garantisce che tutte le dipendenze a cui si fa riferimento essere risolto utilizzando le gemme in bundle.

deployment

In modalità di distribuzione, Bundler 'implementa' il pacchetto per l'uso in produzione. Verifica attentamente se desideri abilitare questa opzione negli ambienti di sviluppo o di test.

only

Un elenco di gruppi separati da spazi per installare solo gemme dei gruppi specificati.

path

La posizione in cui installare le gemme specificate. L'impostazione predefinita è l'impostazione di Rubygems. Bundler condivide questa posizione con Rubygems, gem install ... avrà gem installato anche lì. Pertanto, le gemme installate senza un'impostazione --path ... verranno visualizzate chiamando gem list. Di conseguenza, le gemme installate in altre posizioni non verranno elencate.

without

Un elenco separato da spazi di gruppi che fanno riferimento a gemme da ignorare durante l'installazione.

with

Un elenco separato da spazi di gruppi facoltativi che fanno riferimento alle gemme da includere durante l'installazione.

OPZIONI DI COSTRUZIONE

Puoi usare bundle config per dare a Bundler i flag da passare al gem installer ogni volta che il bundler tenta di installare un particolare gem.

Un esempio molto comune, mysql gem, richiede agli utenti di Snow Leopard di passare i flag di configurazione a gem install per specificare dove trovare l'eseguibile mysql_config.

gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Poiché la posizione specifica di tale eseguibile può cambiare da computer a computer, è possibile specificare questi flag in base al computer.

bundle config set --global build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

Dopo aver eseguito questo comando, ogni volta che il bundler deve installare la gemma mysql, trasmetterà i flag specificati.

CHIAVI DI CONFIGURAZIONE

Le chiavi di configurazione nel bundler hanno due forme: la forma canonica e la forma della variabile d'ambiente.

Ad esempio, passare il flag --without a bundle install(1) bundle-install.1.html impedisce a Bundler di installare determinati gruppi specificati nel Gemfile(5). Bundler mantiene questo valore in app/.bundle/config in modo che le chiamate a Bundler.setup non cerchino di trovare gemme dal Gemfile che hai non ha installato. Inoltre, le chiamate successive a bundle install(1) bundle-install.1.html ricordano questa impostazione e saltano quei gruppi.

La forma canonica di questa configurazione è "senza". Per convertire la forma canonica nella forma della variabile d'ambiente, rendila maiuscola e anteponi BUNDLE_. La forma della variabile d'ambiente di "senza" è BUNDLE_WITHOUT.

Eventuali punti nelle chiavi di configurazione devono essere sostituiti con due caratteri di sottolineatura durante l'impostazione tramite variabili di ambiente. La chiave di configurazione local.rack diventa la variabile di ambiente BUNDLE_LOCAL__RACK.

ELENCO CHIAVI DISPONIBILI

Di seguito è riportato un elenco di tutte le chiavi di configurazione e del loro scopo. Puoi saperne di più sul loro funzionamento in bundle install(1) bundle-install.1.html.

allow_deployment_source_credential_changes (BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES)

In modalità di distribuzione, consenti la modifica delle credenziali nell'origine di un gem. Es: https://some.host.com/gems/path/ -> https://user_name:password@some.host.com/gems/path

allow_offline_install (BUNDLE_ALLOW_OFFLINE_INSTALL)

Consenti a Bundler di utilizzare i dati memorizzati nella cache durante l'installazione senza accesso alla rete.

auto_clean_without_path (BUNDLE_AUTO_CLEAN_WITHOUT_PATH)

Esegui automaticamente bundle clean dopo l'installazione quando non è stato impostato un percorso esplicito e Bundler non si sta installando nelle gemme di sistema.

auto_install (BUNDLE_AUTO_INSTALL)

Esegui automaticamente l'installazione in bundle quando mancano le gemme.

bin (BUNDLE_BIN)

Installa gli eseguibili dalle gemme nel bundle nella directory specificata. Il valore predefinito è false.

cache_all (BUNDLE_CACHE_ALL)

Memorizza nella cache tutte le gemme, incluse le gemme percorso e git. Questo deve essere configurato in modo esplicito su bundler 1 e bundler 2, ma sarà l'impostazione predefinita su bundler 3.

cache_all_platforms (BUNDLE_CACHE_ALL_PLATFORMS)

Gemme cache per tutte le piattaforme.

cache_path (BUNDLE_CACHE_PATH)

La directory in cui il bundler inserirà le gemme memorizzate nella cache durante l'esecuzione di bundle package e che il bundler cercherà durante l'installazione delle gemme. L'impostazione predefinita è vendor/cache.

clean (BUNDLE_CLEAN)

Indica se Bundler deve eseguire automaticamente la pulizia del pacchetto dopo l'installazione del pacchetto.

console (BUNDLE_CONSOLE)

La console che viene avviata bundle console. L'impostazione predefinita è irb.

default_install_uses_path (BUNDLE_DEFAULT_INSTALL_USES_PATH)

Se un bundle install senza un esplicito argomento --path imposta per impostazione predefinita l'installazione di gemme in .bundle.

deployment (BUNDLE_DEPLOYMENT)

Non consentire modifiche al Gemfile. Quando il Gemfile viene modificato e il lockfile non è stato aggiornato, l'esecuzione dei comandi di Bundler verrà bloccata.

disable_checksum_validation (BUNDLE_DISABLE_CHECKSUM_VALIDATION)

Consenti l'installazione di gemme anche se non corrispondono al checksum fornito da RubyGems.

disable_exec_load (BUNDLE_DISABLE_EXEC_LOAD)

Impedisci a Bundler di utilizzare load per avviare un eseguibile in-process in bundle exec.

disable_local_branch_check (BUNDLE_DISABLE_LOCAL_BRANCH_CHECK)

Consenti a Bundler di utilizzare un git override locale senza un ramo specificato nel Gemfile.

disable_local_revision_check (BUNDLE_DISABLE_LOCAL_REVISION_CHECK)

Consenti a Bundler di utilizzare un git override locale senza controllare se la revisione presente nel lockfile è presente nel repository.

disable_shared_gems (BUNDLE_DISABLE_SHARED_GEMS)

Impedisci a Bundler di accedere alle gemme installate nella posizione normale di RubyGems.

disable_version_check (BUNDLE_DISABLE_VERSION_CHECK)

Impedisci a Bundler di verificare se è disponibile una versione più recente di Bundler su rubygems.org.

force_ruby_platform (BUNDLE_FORCE_RUBY_PLATFORM)

Ignora la piattaforma della macchina corrente e installa solo gemme della piattaforma ruby. Di conseguenza, le gemme con estensioni native verranno compilate dal sorgente.

frozen (BUNDLE_FROZEN)

Non consentire modifiche al Gemfile. Quando il Gemfile viene modificato e il lockfile non è stato aggiornato, l'esecuzione dei comandi di Bundler verrà bloccata. Il valore predefinito è true quando viene utilizzato --deployment.

gem.github_username (BUNDLE_GEM__GITHUB_USERNAME)

Imposta un nome utente o un'organizzazione GitHub da utilizzare nel file README quando crei un nuovo gem tramite il comando bundle gem. Può essere sovrascritto passando un flag --github-username esplicito a bundle gem.

gem.push_key (BUNDLE_GEM__PUSH_KEY)

Imposta il parametro --key per gem push quando si utilizza il comando rake release con un server gemstash privato.

gemfile (BUNDLE_GEMFILE)

Il nome del file che il bundler dovrebbe utilizzare come Gemfile. Questa posizione di questo file imposta anche la radice del progetto, che viene utilizzata per risolvere i percorsi relativi nel Gemfile, tra le altre cose. Per impostazione predefinita, bundler cercherà dalla directory di lavoro corrente finché non troverà un Gemfile.

global_gem_cache (BUNDLE_GLOBAL_GEM_CACHE)

Se Bundler deve memorizzare nella cache tutte le gemme a livello globale, piuttosto che localmente nell'installazione di Ruby.

ignore_funding_requests (BUNDLE_IGNORE_FUNDING_REQUESTS)

Una volta impostato, non verranno stampate richieste di finanziamento.

ignore_messages (BUNDLE_IGNORE_MESSAGES)

Se impostato, non verranno stampati messaggi post installazione. Per silenziare una singola gemma, usa la notazione con punti come ignore_messages.httparty true.

init_gems_rb (BUNDLE_INIT_GEMS_RB)

Genera un gems.rb invece di un Gemfile durante l'esecuzione di bundle init.

jobs (BUNDLE_JOBS)

Il numero di gemme che Bundler può installare in parallelo. L'impostazione predefinita è il numero di processori disponibili.

no_install (BUNDLE_NO_INSTALL)

Indica se il pacchetto bundle deve saltare l'installazione di gemme.

no_prune (BUNDLE_NO_PRUNE)

Indica se Bundler deve lasciare le gemme obsolete non potate durante la memorizzazione nella cache.

only (BUNDLE_ONLY)

Un elenco di gruppi separati da spazi per installare solo gemme dei gruppi specificati.

path (BUNDLE_PATH)

La posizione sul disco in cui si troveranno tutte le gemme nel tuo pacchetto indipendentemente dai valori $GEM_HOME o $GEM_PATH. I bundle gem non trovati in questa posizione verranno installati mediante bundle install. L'impostazione predefinita è Gem.dir. Quando viene utilizzato --deployment, l'impostazione predefinita è vendor/bundle.

path.system (BUNDLE_PATH__SYSTEM)

Se Bundler installerà le gemme nel percorso di sistema predefinito (Gem.dir).

path_relative_to_cwd (BUNDLE_PATH_RELATIVE_TO_CWD)

Rende --path relativo al CWD invece del Gemfile.

plugins (BUNDLE_PLUGINS)

Abilita il sistema di plug-in sperimentale di Bundler.

prefer_patch (BUNDLE_PREFER_PATCH)

Preferisci l'aggiornamento solo alla versione patch successiva durante gli aggiornamenti. Rende le chiamate bundle update equivalenti a bundler update --patch.

print_only_version_number (BUNDLE_PRINT_ONLY_VERSION_NUMBER)

Stampa solo il numero di versione da bundler --version.

redirect (BUNDLE_REDIRECT)

Il numero di reindirizzamenti consentiti per le richieste di rete. L'impostazione predefinita è 5.

retry (BUNDLE_RETRY)

Il numero di tentativi per le richieste di rete non riuscite. L'impostazione predefinita è 3.

setup_makes_kernel_gem_public (BUNDLE_SETUP_MAKES_KERNEL_GEM_PUBLIC)

Fai in modo che Bundler.setup renda pubblico il metodo Kernel#gem, anche se RubyGems lo dichiara privato.

shebang (BUNDLE_SHEBANG)

Il nome del programma che deve essere richiamato per i binstub generati. L'impostazione predefinita è il nome di installazione di ruby utilizzato per generare binstub.

silence_deprecations (BUNDLE_SILENCE_DEPRECATIONS)

Se Bundler deve silenziare gli avvisi di deprecazione per il comportamento che verrà modificato nella prossima versione principale.

silence_root_warning (BUNDLE_SILENCE_ROOT_WARNING)

Silenzia l'avviso che Bundler stampa durante l'installazione di gemme come root.

ssl_ca_cert (BUNDLE_SSL_CA_CERT)

Percorso di un file o cartella di certificato CA designato contenente più certificati per CA attendibili in formato PEM.

ssl_client_cert (BUNDLE_SSL_CLIENT_CERT)

Percorso di un file designato contenente un certificato client X.509 e una chiave in formato PEM.

ssl_verify_mode (BUNDLE_SSL_VERIFY_MODE)

La modalità di verifica SSL utilizzata da Bundler quando effettua richieste HTTPS. L'impostazione predefinita è verificare il peer.

suppress_install_using_messages (BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES)

Evita di stampare i messaggi Utilizzo ... durante l'installazione quando la versione di un gem non è cambiata.

system_bindir (BUNDLE_SYSTEM_BINDIR)

La posizione in cui RubyGems installa binstubs. L'impostazione predefinita è Gem.bindir.

timeout (BUNDLE_TIMEOUT)

I secondi consentiti prima del timeout per le richieste di rete. L'impostazione predefinita è 10.

update_requires_all_flag (BUNDLE_UPDATE_REQUIRES_ALL_FLAG)

Richiedi il passaggio di --all a bundle update quando tutto deve essere aggiornato e non consentire il passaggio di nessuna opzione a bundle update.

user_agent (BUNDLE_USER_AGENT)

Il frammento dell'agente utente personalizzato Bundler include nelle richieste API.

with (BUNDLE_WITH)

Un elenco :-separato di gruppi di cui dovrebbe essere installato il gem bundler.

without (BUNDLE_WITHOUT)

Un elenco :-separated di gruppi il cui gem bundler non deve essere installato.

In generale, dovresti impostare queste impostazioni per ogni applicazione utilizzando il flag applicabile al bundle install(1) bundle-install.1.html o al bundle cache(1) bundle-cache. 1.html.

Puoi impostarli globalmente tramite variabili di ambiente o bundle config, a seconda di quale sia preferibile per la tua configurazione. Se li usi entrambi, le variabili di ambiente avranno la precedenza sulle impostazioni globali.

REPOS GIT LOCALE

Bundler ti consente anche di lavorare su un repository git localmente invece di utilizzare la versione remota. Ciò può essere ottenuto impostando un override locale:

bundle config set --local local.GEM_NAME /path/to/local/git/repository

Ad esempio, per utilizzare un repository Rack locale, uno sviluppatore potrebbe chiamare:

bundle config set --local local.rack ~/Work/git/rack

Ora invece di controllare il repository git remoto, verrà utilizzato l'override locale. Analogamente a un'origine percorso, ogni volta che il repository git locale cambia, le modifiche verranno automaticamente rilevate da Bundler. Ciò significa che un commit nel repository git locale aggiornerà la revisione in Gemfile.lock alla revisione del repository git locale. Ciò richiede la stessa attenzione dei sottomoduli git. Prima di inviare al remoto, devi assicurarti che l'override locale sia stato inviato, altrimenti potresti puntare a un commit che esiste solo nella tua macchina locale. Dovrai anche eseguire l'escape CGI anche dei tuoi nomi utente e password.

Bundler esegue molti controlli per garantire che uno sviluppatore non lavori con riferimenti non validi. In particolare, costringiamo uno sviluppatore a specificare un ramo nel Gemfile per utilizzare questa funzione. Se il ramo specificato nel Gemfile e il ramo corrente nel repository git locale non corrispondono, Bundler si interromperà. Ciò garantisce che uno sviluppatore lavori sempre sui rami corretti e impedisce il blocco accidentale a un ramo diverso.

Infine, Bundler garantisce anche che la revisione corrente in Gemfile.lock esista nel repository git locale. In questo modo, Bundler ti costringe a recuperare le ultime modifiche nei telecomandi.

SPECCHI DI FONTI DI GEMME

Bundler supporta l'override delle fonti di gemme con i mirror. Ciò ti consente di configurare rubygems.org come fonte di gemme nel tuo Gemfile mentre usi ancora il tuo mirror per recuperare le gemme.

bundle config set --global mirror.SOURCE_URL MIRROR_URL

Ad esempio, per utilizzare un mirror di https://rubygems.org ospitato su https://example.org:

bundle config set --global mirror.https://rubygems.org https://example.org

Ogni mirror fornisce anche un'impostazione di timeout di fallback. Se il mirror non risponde entro il timeout di fallback, Bundler tenterà di utilizzare il server originale anziché il mirror.

bundle config set --global mirror.SOURCE_URL.fallback_timeout TIMEOUT

Ad esempio, per tornare a rubygems.org dopo 3 secondi:

bundle config set --global mirror.https://rubygems.org.fallback_timeout 3

Il timeout di fallback predefinito è 0,1 secondi, ma l'impostazione attualmente può accettare solo secondi interi (ad esempio, 1, 15 o 30).

CREDENZIALI PER FONTI GEM

Bundler ti consente di configurare le credenziali per qualsiasi fonte di gemme, il che ti consente di evitare di inserire segreti nel tuo Gemfile.

bundle config set --global SOURCE_HOSTNAME USERNAME:PASSWORD

Ad esempio, per salvare le credenziali dell'utente claudette per l'origine della gemma su gems.longerous.com, dovresti eseguire:

bundle config set --global gems.longerous.com claudette:s00pers3krit

Oppure puoi impostare le credenziali come una variabile di ambiente come questa:

export BUNDLE_GEMS__LONGEROUS__COM="claudette:s00pers3krit"

Per le gemme con una sorgente git con URL HTTP(S) puoi specificare le credenziali in questo modo:

bundle config set --global https://github.com/rubygems/rubygems.git username:password

Oppure puoi impostare le credenziali come variabile di ambiente in questo modo:

export BUNDLE_GITHUB__COM=username:password

Ciò è particolarmente utile per i repository privati su host come GitHub, dove puoi utilizzare token OAuth personali:

export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic

Tieni presente che tutte le credenziali configurate verranno oscurate da comandi informativi come bundle config list o bundle config get, a meno che tu non utilizzi il flag --parseable . Questo per evitare la perdita involontaria delle credenziali quando si copia e incolla l'output del bundler.

Si noti inoltre che per garantire una corretta mappatura tra nomi di variabili di ambiente validi e nomi host validi, il bundler effettua le seguenti trasformazioni:

-
.

Tutti questi caratteri in un nome host sono mappati su un doppio trattino (__) nella variabile di ambiente corrispondente.

Ciò significa che se disponi di un server gemma denominato my.gem-host.com, dovrai utilizzare la variabile BUNDLE_MY__GEM___HOST__COM per configurarne le credenziali tramite ENV.

CONFIGURA LE DIRECTORY DEL BUNDLER

Le directory home, config, cache e plugin di Bundler possono essere configurate tramite variabili di ambiente. La posizione predefinita per la home directory di Bundler è ~/.bundle, da cui tutte le directory ereditano per impostazione predefinita. Quanto segue delinea le variabili di ambiente disponibili ei loro valori predefiniti

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