bundle-config - instrukcja obsługi, opcje, przykłady poleceń


NAZWA

bundle-config - Ustaw opcje konfiguracji pakietu

STRESZCZENIE

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

OPIS

To polecenie umożliwia interakcję z systemem konfiguracyjnym Bundlera.

Bundler ładuje ustawienia konfiguracyjne w następującej kolejności:

  1. Konfiguracja lokalna (/.bundle/config lub $BUNDLE_APP_CONFIG/config)

  2. Zmienne środowiskowe (ENV)

  3. Konfiguracja globalna (~/.bundle/config)

  4. Domyślna konfiguracja pakietu

Wykonanie

bundle config list

wydrukuje listę wszystkich konfiguracji pakietu dla bieżącego pakietu i gdzie ta konfiguracja została ustawiona.

Wykonanie

bundle config get <name>

wydrukuje wartość tego ustawienia konfiguracji i miejsce, w którym zostało ustawione.

Wykonanie

bundle config set <name> <value>

domyślnie ustawia konfigurację lokalną, jeśli jest wykonywana z poziomu aplikacji lokalnej, w przeciwnym razie ustawi konfigurację globalną. Zobacz opcje --local i --global poniżej.

Wykonanie

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

ustawi tę konfigurację w katalogu aplikacji lokalnej. Konfiguracja zostanie zapisana w /.bundle/config. Jeśli ustawiono BUNDLE_APP_CONFIG, konfiguracja zostanie zapisana w $BUNDLE_APP_CONFIG/config.

Wykonanie

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

ustawi tę konfigurację na wartość określoną dla wszystkich pakunków wykonanych jako bieżący użytkownik. Konfiguracja zostanie zapisana w ~/.bundle/config. Jeśli nazwa jest już ustawiona, nazwa zostanie zastąpiona, a użytkownik zostanie ostrzeżony.

Wykonanie

bundle config unset <name>

usunie konfigurację zarówno w źródłach lokalnych, jak i globalnych.

Wykonanie

bundle config unset --global <name>

usunie konfigurację tylko z konfiguracji użytkownika.

Wykonanie

bundle config unset --local <name>

usunie konfigurację tylko z aplikacji lokalnej.

Wykonanie pakietu z ustawioną zmienną środowiskową BUNDLE_IGNORE_CONFIG spowoduje zignorowanie całej konfiguracji.

PAMIĘTAJ O OPCJACH

Flagi przekazywane do instalacji pakietu lub środowiska wykonawczego Bundlera, takie jak --path foo lub --bez produkcji, są zapamiętywane między poleceniami i zapisywane w konfiguracja aplikacji lokalnej (zwykle ./.bundle/config).

Zostanie to jednak zmienione w pakiecie 3, więc lepiej nie polegać na tym zachowaniu. Jeśli te opcje muszą zostać zapamiętane, lepiej ustawić je za pomocą bundle config (np. bundle config set --local path foo).

Opcje, które można skonfigurować to:

bin

Tworzy katalog (domyślnie ~/bin) i umieszcza tam wszystkie pliki wykonywalne z klejnotu. Te pliki wykonywalne działają w kontekście Bundlera. Jeśli jest używany, możesz dodać ten katalog do zmiennej PATH swojego środowiska. Na przykład, jeśli klejnot rails jest dostarczany z plikiem wykonywalnym rails, ta flaga utworzy plik wykonywalny bin/rails, który zapewni, że wszystkie przywoływane zależności będą rozwiązać za pomocą dołączonych klejnotów.

deployment

W trybie wdrażania program Bundler „wdroży” pakiet do użytku produkcyjnego. Sprawdź dokładnie, czy chcesz włączyć tę opcję w środowiskach programistycznych czy testowych.

only

Oddzielona spacjami lista grup, aby zainstalować tylko klejnoty z określonych grup.

path

Lokalizacja, w której mają zostać zainstalowane określone klejnoty. Domyślnie jest to ustawienie Rubygems. Bundler współdzieli tę lokalizację z Rubygems, gem install ... również tam zainstaluje gem. Dlatego klejnoty zainstalowane bez ustawienia --path... zostaną wyświetlone po wywołaniu list klejnotów. W związku z tym klejnoty zainstalowane w innych lokalizacjach nie zostaną wymienione.

without

Oddzielona spacjami lista grup odnoszących się do klejnotów, które należy pominąć podczas instalacji.

with

Oddzielona spacjami lista opcjonalnych grup odnoszących się do klejnotów, które mają zostać uwzględnione podczas instalacji.

OPCJE BUDOWANIA

Możesz użyć konfiguracji pakietu, aby dać Bundlerowi flagi do przekazania instalatorowi klejnotów za każdym razem, gdy pakiet próbuje zainstalować określony klejnot.

Bardzo popularny przykład, klejnot mysql, wymaga od użytkowników systemu Snow Leopard przekazania flag konfiguracji do gem install, aby określić, gdzie znaleźć plik wykonywalny mysql_config.

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

Ponieważ określona lokalizacja tego pliku wykonywalnego może się zmieniać z komputera na komputer, można określić te flagi dla poszczególnych komputerów.

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

Po uruchomieniu tego polecenia, za każdym razem, gdy pakiet musi zainstalować klejnot mysql, przekaże określone flagi.

KLAWISZE KONFIGURACYJNE

Klucze konfiguracyjne w pakiecie mają dwie formy: kanoniczną i zmienną środowiskową.

Na przykład przekazanie flagi --without do bundle install(1) bundle-install.1.html uniemożliwia Bundlerowi zainstalowanie pewnych grup określonych w pliku Gemfile(5). Bundler utrzymuje tę wartość w app/.bundle/config, więc wywołania Bundler.setup nie próbują znaleźć klejnotów z Gemfile, które nie zainstalowałem. Dodatkowo, kolejne wywołania bundle install(1) bundle-install.1.html zapamiętują to ustawienie i pomijają te grupy.

Kanoniczna postać tej konfiguracji to "bez". Aby przekonwertować formę kanoniczną na formę zmiennej środowiskowej, pisz ją wielką literą i dodaj na początku BUNDLE_. Forma zmiennej środowiskowej "bez" to BUNDLE_WITHOUT.

Wszelkie kropki w kluczach konfiguracyjnych należy zastąpić dwoma podkreśleniami podczas ustawiania ich za pomocą zmiennych środowiskowych. Klucz konfiguracyjny local.rack staje się zmienną środowiskową BUNDLE_LOCAL__RACK.

LISTA DOSTĘPNYCH KLUCZY

Poniżej znajduje się lista wszystkich kluczy konfiguracyjnych i ich przeznaczenie. Możesz dowiedzieć się więcej o ich działaniu w bundle install(1) bundle-install.1.html.

allow_deployment_source_credential_changes (BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES)

W trybie wdrażania zezwól na zmianę poświadczeń źródła klejnotu. Np.: https://jakiś.host.com/gems/ścieżka/ -> https://nazwa_użytkownika:hasło@jakiś.host.com/gems/ścieżka

allow_offline_install (BUNDLE_ALLOW_OFFLINE_INSTALL)

Zezwól Bundlerowi na używanie danych z pamięci podręcznej podczas instalacji bez dostępu do sieci.

auto_clean_without_path (BUNDLE_AUTO_CLEAN_WITHOUT_PATH)

Automatycznie uruchamiaj wyczyść pakiet po instalacji, jeśli nie została ustawiona wyraźna ścieżka, a program Bundler nie instaluje się w klejnotach systemowych.

auto_install (BUNDLE_AUTO_INSTALL)

Automatycznie uruchamiaj instalację pakietu, gdy brakuje klejnotów.

bin (BUNDLE_BIN)

Zainstaluj pliki wykonywalne z klejnotów w pakiecie do określonego katalogu. Domyślnie fałsz.

cache_all (BUNDLE_CACHE_ALL)

Buforuj wszystkie klejnoty, w tym klejnoty ścieżki i git. To musi być wyraźnie skonfigurowane w pakiecie 1 i pakiecie 2, ale będzie ustawieniem domyślnym w pakiecie 3.

cache_all_platforms (BUNDLE_CACHE_ALL_PLATFORMS)

Klejnoty w pamięci podręcznej dla wszystkich platform.

cache_path (BUNDLE_CACHE_PATH)

Katalog, w którym program pakujący umieści klejnoty w pamięci podręcznej podczas uruchamiania pakietu pakietu i który program pakujący będzie zaglądał podczas instalowania klejnotów. Domyślnie dostawca/pamięć podręczna.

clean (BUNDLE_CLEAN)

Określa, czy program Bundler powinien automatycznie uruchamiać oczyszczanie pakietu po instalacji pakietu.

console (BUNDLE_CONSOLE)

Uruchamia się konsola konsoli w pakiecie. Domyślnie irb.

default_install_uses_path (BUNDLE_DEFAULT_INSTALL_USES_PATH)

Czy instalacja pakietu bez wyraźnego argumentu --path domyślnie instaluje klejnoty w .bundle.

deployment (BUNDLE_DEPLOYMENT)

Nie zezwalaj na zmiany w pliku Gemfile. Gdy Gemfile zostanie zmieniony, a plik blokujący nie zostanie zaktualizowany, uruchamianie poleceń Bundlera zostanie zablokowane.

disable_checksum_validation (BUNDLE_DISABLE_CHECKSUM_VALIDATION)

Zezwalaj na instalowanie klejnotów, nawet jeśli nie pasują do sumy kontrolnej dostarczonej przez RubyGems.

disable_exec_load (BUNDLE_DISABLE_EXEC_LOAD)

Powstrzymaj Bundlera przed używaniem load do uruchamiania pliku wykonywalnego w trakcie w bundle exec.

disable_local_branch_check (BUNDLE_DISABLE_LOCAL_BRANCH_CHECK)

Zezwól Bundlerowi na użycie lokalnego nadpisania git bez gałęzi określonej w pliku Gemfile.

disable_local_revision_check (BUNDLE_DISABLE_LOCAL_REVISION_CHECK)

Zezwól Bundlerowi na użycie lokalnego nadpisania git bez sprawdzania, czy wersja obecna w pliku blokującym jest obecna w repozytorium.

disable_shared_gems (BUNDLE_DISABLE_SHARED_GEMS)

Powstrzymaj Bundlera przed dostępem do klejnotów zainstalowanych w normalnej lokalizacji RubyGems.

disable_version_check (BUNDLE_DISABLE_VERSION_CHECK)

Powstrzymaj Bundler przed sprawdzaniem, czy nowsza wersja Bundlera jest dostępna na rubygems.org.

force_ruby_platform (BUNDLE_FORCE_RUBY_PLATFORM)

Zignoruj platformę bieżącej maszyny i zainstaluj tylko klejnoty platformy ruby. W rezultacie klejnoty z natywnymi rozszerzeniami będą kompilowane ze źródła.

frozen (BUNDLE_FROZEN)

Nie zezwalaj na zmiany w pliku Gemfile. Kiedy Gemfile zostanie zmieniony, a plik blokujący nie zostanie zaktualizowany, uruchamianie poleceń Bundlera zostanie zablokowane. Wartość domyślna to true, gdy używane jest --deployment.

gem.github_username (BUNDLE_GEM__GITHUB_USERNAME)

Ustawia nazwę użytkownika lub organizację GitHub, która będzie używana w pliku README podczas tworzenia nowego klejnotu za pomocą polecenia bundle gem. Można to zmienić, przekazując jawną flagę --github-username do bundle gem.

gem.push_key (BUNDLE_GEM__PUSH_KEY)

Ustawia parametr --key dla gem push podczas używania polecenia rake release z prywatnym serwerem gemstash.

gemfile (BUNDLE_GEMFILE)

Nazwa pliku, którego pakiet powinien używać jako Gemfile. Ta lokalizacja tego pliku określa również katalog główny projektu, który jest używany między innymi do rozstrzygania względnych ścieżek w pliku Gemfile. Domyślnie pakiet będzie przeszukiwał bieżący katalog roboczy w górę, aż znajdzie plik Gemfile.

global_gem_cache (BUNDLE_GLOBAL_GEM_CACHE)

Czy program Bundler powinien buforować wszystkie klejnoty globalnie, a nie lokalnie w instalacyjnej instalacji Ruby.

ignore_funding_requests (BUNDLE_IGNORE_FUNDING_REQUESTS)

Po ustawieniu żadne prośby o finansowanie nie będą drukowane.

ignore_messages (BUNDLE_IGNORE_MESSAGES)

Po ustawieniu żadne komunikaty po instalacji nie będą drukowane. Aby wyciszyć pojedynczy klejnot, użyj notacji kropkowej, takiej jak ignore_messages.httparty true.

init_gems_rb (BUNDLE_INIT_GEMS_RB)

Wygeneruj gems.rb zamiast Gemfile podczas uruchamiania bundle init.

jobs (BUNDLE_JOBS)

Liczba klejnotów, które Bundler może zainstalować równolegle. Domyślnie liczba dostępnych procesorów.

no_install (BUNDLE_NO_INSTALL)

Czy pakiet pakietu powinien pominąć instalację klejnotów.

no_prune (BUNDLE_NO_PRUNE)

Czy program Bundler powinien pozostawiać nieprzycięte klejnoty podczas buforowania.

only (BUNDLE_ONLY)

Oddzielona spacjami lista grup, aby zainstalować tylko klejnoty z określonych grup.

path (BUNDLE_PATH)

Lokalizacja na dysku, w której będą znajdować się wszystkie klejnoty w pakiecie, niezależnie od wartości $GEM_HOME lub $GEM_PATH. Klejnoty z pakietu, których nie znaleziono w tej lokalizacji, zostaną zainstalowane przez instalację pakietu. Domyślnie jest to Gem.dir. Gdy używany jest parametr --deployment, domyślnym ustawieniem jest dostawca/pakiet.

path.system (BUNDLE_PATH__SYSTEM)

Określa, czy program Bundler będzie instalował klejnoty w domyślnej ścieżce systemowej (Gem.dir).

path_relative_to_cwd (BUNDLE_PATH_RELATIVE_TO_CWD)

Ustawia --path względem CWD zamiast Gemfile.

plugins (BUNDLE_PLUGINS)

Włącz eksperymentalny system wtyczek Bundlera.

prefer_patch (BUNDLE_PREFER_PATCH)

Preferuj aktualizację tylko do następnej wersji poprawki podczas aktualizacji. Sprawia, że wywołania bundler update są równoważne z bundler update --patch.

print_only_version_number (BUNDLE_PRINT_ONLY_VERSION_NUMBER)

Wydrukuj tylko numer wersji z bundler --version.

redirect (BUNDLE_REDIRECT)

Liczba przekierowań dozwolonych dla żądań sieciowych. Domyślnie 5.

retry (BUNDLE_RETRY)

Liczba ponowień nieudanych żądań sieciowych. Domyślnie 3.

setup_makes_kernel_gem_public (BUNDLE_SETUP_MAKES_KERNEL_GEM_PUBLIC)

Niech Bundler.setup upublicznia metodę Kernel#gem, nawet jeśli RubyGems deklaruje ją jako prywatną.

shebang (BUNDLE_SHEBANG)

Nazwa programu, który powinien zostać wywołany dla wygenerowanych elementów binarnych. Domyślnie nazwa instalacji ruby używana do generowania binstub.

silence_deprecations (BUNDLE_SILENCE_DEPRECATIONS)

Określa, czy program Bundler powinien wyciszyć ostrzeżenia o wycofaniu ze względu na zachowanie, które zostanie zmienione w następnej wersji głównej.

silence_root_warning (BUNDLE_SILENCE_ROOT_WARNING)

Wycisz ostrzeżenie, które Bundler drukuje podczas instalowania klejnotów jako root.

ssl_ca_cert (BUNDLE_SSL_CA_CERT)

Ścieżka do pliku lub folderu certyfikatu wyznaczonego urzędu certyfikacji zawierającego wiele certyfikatów dla zaufanych urzędów certyfikacji w formacie PEM.

ssl_client_cert (BUNDLE_SSL_CLIENT_CERT)

Ścieżka do wskazanego pliku zawierającego certyfikat klienta X.509 i klucz w formacie PEM.

ssl_verify_mode (BUNDLE_SSL_VERIFY_MODE)

Tryb weryfikacji SSL używany przez program Bundler podczas wysyłania żądań HTTPS. Domyślnie weryfikuje peera.

suppress_install_using_messages (BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES)

Unikaj drukowania komunikatów Używanie... podczas instalacji, gdy wersja klejnotu nie uległa zmianie.

system_bindir (BUNDLE_SYSTEM_BINDIR)

Lokalizacja, w której RubyGems instaluje binstuby. Domyślnie Gem.bindir.

timeout (BUNDLE_TIMEOUT)

Dozwolona liczba sekund przed przekroczeniem limitu czasu dla żądań sieciowych. Domyślnie 10.

update_requires_all_flag (BUNDLE_UPDATE_REQUIRES_ALL_FLAG)

Wymagaj przekazywania --all do pakietu aktualizacji, gdy wszystko powinno zostać zaktualizowane, i nie zezwalaj na przekazywanie żadnych opcji do pakietu aktualizacji.

user_agent (BUNDLE_USER_AGENT)

Niestandardowy fragment agenta użytkownika, który Bundler dołącza do żądań interfejsu API.

with (BUNDLE_WITH)

:oddzielona od siebie lista grup, których pakiet klejnotów powinien zostać zainstalowany.

without (BUNDLE_WITHOUT)

:oddzielona od siebie lista grup, których pakiet klejnotów nie powinien być instalowany.

Ogólnie rzecz biorąc, należy ustawić te ustawienia dla poszczególnych aplikacji, używając odpowiedniej flagi do pakietu install(1) bundle-install.1.html lub bundle cache(1) bundle-cache. 1.html polecenie.

Możesz ustawić je globalnie za pomocą zmiennych środowiskowych lub konfiguracji pakietu, w zależności od tego, co jest lepsze dla Twojej konfiguracji. Jeśli użyjesz obu, zmienne środowiskowe będą miały pierwszeństwo przed ustawieniami globalnymi.

LOKALNE REPOZYCJE GIT

Bundler pozwala także na lokalną pracę z repozytorium git zamiast używania wersji zdalnej. Można to osiągnąć, konfigurując lokalne nadpisanie:

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

Na przykład, aby skorzystać z lokalnego repozytorium Rack, programista może wywołać:

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

Teraz zamiast sprawdzać zdalne repozytorium git, zostanie użyte lokalne nadpisanie. Podobnie jak w przypadku źródła ścieżki, za każdym razem, gdy zmieni się lokalne repozytorium git, zmiany zostaną automatycznie pobrane przez Bundlera. Oznacza to, że zatwierdzenie w lokalnym repozytorium git zaktualizuje wersję w Gemfile.lock do lokalnej wersji repozytorium git. Wymaga to takiej samej uwagi, jak podmoduły git. Przed wypchnięciem do pilota musisz upewnić się, że lokalne zastąpienie zostało wypchnięte, w przeciwnym razie możesz wskazać zatwierdzenie, które istnieje tylko na twoim lokalnym komputerze. Będziesz także potrzebować CGI uciec od swoich nazw użytkowników i haseł.

Bundler przeprowadza wiele kontroli, aby upewnić się, że programista nie będzie działał z nieprawidłowymi referencjami. W szczególności zmuszamy programistę do określenia gałęzi w pliku Gemfile, aby móc korzystać z tej funkcji. Jeśli gałąź określona w Gemfile i bieżąca gałąź w lokalnym repozytorium git nie pasują do siebie, Bundler przerwie pracę. Zapewnia to, że programista zawsze pracuje z właściwymi gałęziami i zapobiega przypadkowemu zablokowaniu innej gałęzi.

Wreszcie, Bundler zapewnia również, że bieżąca wersja w Gemfile.lock istnieje w lokalnym repozytorium git. W ten sposób Bundler zmusza cię do pobrania najnowszych zmian w pilotach.

LUSTERKA ŹRÓDEŁ KLEJNOTÓW

Bundler obsługuje zastępowanie źródeł klejnotów za pomocą kopii lustrzanych. Pozwala to na skonfigurowanie rubygems.org jako źródła klejnotów w pliku Gemfile, podczas gdy nadal używasz swojego serwera lustrzanego do pobierania klejnotów.

bundle config set --global mirror.SOURCE_URL MIRROR_URL

Na przykład, aby użyć kopii lustrzanej https://rubygems.org hostowanej pod adresem https://example.org:

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

Każdy serwer lustrzany zapewnia również ustawienie limitu czasu awaryjnego. Jeśli serwer lustrzany nie odpowie w ramach limitu czasu awaryjnego, program Bundler spróbuje użyć oryginalnego serwera zamiast serwera lustrzanego.

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

Na przykład, aby wrócić do rubygems.org po 3 sekundach:

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

Domyślny limit czasu rezerwy wynosi 0,1 sekundy, ale obecnie akceptowane są tylko całe sekundy (na przykład 1, 15 lub 30).

KREDYTY DLA ŹRÓDEŁ KLEJNOTÓW

Bundler umożliwia skonfigurowanie poświadczeń dla dowolnego źródła klejnotów, co pozwala uniknąć umieszczania tajemnic w pliku Gemfile.

bundle config set --global SOURCE_HOSTNAME USERNAME:PASSWORD

Na przykład, aby zapisać poświadczenia użytkownika claudette dla źródła klejnotów na gems.longerous.com, uruchomiłbyś:

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

Lub możesz ustawić poświadczenia jako zmienną środowiskową w następujący sposób:

export BUNDLE_GEMS__LONGEROUS__COM="claudette:s00pers3krit"

W przypadku klejnotów ze źródłem git z adresem URL HTTP (S) możesz określić poświadczenia w następujący sposób:

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

Lub możesz ustawić poświadczenia jako zmienną środowiskową w następujący sposób:

export BUNDLE_GITHUB__COM=username:password

Jest to szczególnie przydatne w przypadku prywatnych repozytoriów na hostach, takich jak GitHub, gdzie można używać osobistych tokenów OAuth:

export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic

Pamiętaj, że wszelkie skonfigurowane poświadczenia zostaną zredagowane przez polecenia informacyjne, takie jak bundle config list lub bundle config get, chyba że użyjesz flagi --parseable . Ma to na celu uniknięcie niezamierzonego wycieku poświadczeń podczas kopiowania i wklejania danych wyjściowych pakietu.

Należy również zauważyć, że aby zagwarantować rozsądne odwzorowanie między prawidłowymi nazwami zmiennych środowiskowych a prawidłowymi nazwami hostów, pakiet wykonuje następujące przekształcenia:

-
.

Wszystkie te znaki w nazwie hosta są odwzorowywane na podwójny myślnik (__) w odpowiedniej zmiennej środowiskowej.

Oznacza to, że jeśli masz serwer klejnotów o nazwie my.gem-host.com, będziesz musiał użyć zmiennej BUNDLE_MY__GEM___HOST__COM, aby skonfigurować dla niego poświadczenia za pośrednictwem ENV.

SKONFIGURUJ KATALOGI BUNDLERA

Katalogi home, config, cache i plugin Bundlera można konfigurować za pomocą zmiennych środowiskowych. Domyślna lokalizacja katalogu domowego programu Bundler to ~/.bundle, z którego domyślnie dziedziczą wszystkie katalogi. Poniżej opisano dostępne zmienne środowiskowe i ich wartości domyślne

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