bundle-config - คู่มืออ้างอิง ตัวเลือก ตัวอย่างคำสั่ง


ชื่อ

bundle-config - ตั้งค่าตัวเลือกการกำหนดค่า Bundler

เรื่องย่อ

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

คำอธิบาย

คำสั่งนี้อนุญาตให้คุณโต้ตอบกับระบบการกำหนดค่าของ Bundler

Bundler โหลดการตั้งค่าการกำหนดค่าตามลำดับนี้:

  1. การกำหนดค่าในเครื่อง (/.bundle/config หรือ $BUNDLE_APP_CONFIG/config)

  2. ตัวแปรด้านสิ่งแวดล้อม (ENV)

  3. การกำหนดค่าส่วนกลาง (~/.bundle/config)

  4. การกำหนดค่าเริ่มต้นของ Bundler

กำลังดำเนินการ

bundle config list

จะพิมพ์รายการการกำหนดค่าบันเดิลทั้งหมดสำหรับบันเดิลปัจจุบัน และตำแหน่งที่ตั้งคอนฟิกูเรชันนั้น

กำลังดำเนินการ

bundle config get <name>

จะพิมพ์ค่าของการกำหนดค่านั้นและตำแหน่งที่ตั้งค่าไว้

กำลังดำเนินการ

bundle config set <name> <value>

ค่าเริ่มต้นคือการตั้งค่าการกำหนดค่า ภายในเครื่อง หากดำเนินการจากภายในแอปพลิเคชันภายในเครื่อง มิฉะนั้นจะเป็นการตั้งค่าการกำหนดค่าส่วนกลาง ดูตัวเลือก --local และ --global ด้านล่าง

กำลังดำเนินการ

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

จะตั้งค่าคอนฟิกูเรชันนั้นในไดเร็กทอรีสำหรับแอ็พพลิเคชันภายในเครื่อง การกำหนดค่าจะถูกจัดเก็บไว้ใน /.bundle/config หากมีการตั้งค่า BUNDLE_APP_CONFIG การกำหนดค่าจะถูกเก็บไว้ใน $BUNDLE_APP_CONFIG/config

กำลังดำเนินการ

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 จะทำให้ละเว้นการกำหนดค่าทั้งหมด

ตัวเลือกการจำ

ค่าสถานะที่ส่งผ่านไปยัง การติดตั้งแบบรวม หรือรันไทม์ของ Bundler เช่น --path foo หรือ -- โดยไม่ต้องใช้งานจริง จะถูกจดจำระหว่างคำสั่งและบันทึกลงใน การกำหนดค่าแอปพลิเคชันในเครื่องของคุณ (โดยปกติคือ ./.bundle/config)

อย่างไรก็ตาม จะมีการเปลี่ยนแปลงใน Bundler 3 ดังนั้นจึงเป็นการดีกว่าที่จะไม่พึ่งพาลักษณะการทำงานนี้ หากจำตัวเลือกเหล่านี้ได้ จะเป็นการดีกว่าหากตั้งค่าโดยใช้ bundle config (เช่น bundle config set --local path foo)

ตัวเลือกที่สามารถกำหนดค่าได้คือ:

bin

สร้างไดเร็กทอรี (ค่าเริ่มต้นคือ ~/bin) และวางไฟล์ปฏิบัติการใดๆ จากอัญมณีที่นั่น ไฟล์เรียกทำงานเหล่านี้ทำงานในบริบทของ Bundler หากใช้ คุณอาจเพิ่มไดเร็กทอรีนี้ในตัวแปร PATH ของสภาพแวดล้อม ตัวอย่างเช่น หากเจ็ม rails มาพร้อมกับไฟล์ปฏิบัติการ rails แฟล็กนี้จะสร้างไฟล์ปฏิบัติการ bin/rails ที่ทำให้มั่นใจได้ว่าการอ้างอิงทั้งหมดจะ ได้รับการแก้ไขโดยใช้อัญมณีที่แถมมา

deployment

ในโหมดการปรับใช้ Bundler จะ 'เปิดตัว' บันเดิลสำหรับการใช้งาน การผลิต โปรดตรวจสอบอย่างละเอียดหากคุณต้องการเปิดใช้งานตัวเลือกนี้ในสภาพแวดล้อม การพัฒนา หรือ การทดสอบ

only

รายการกลุ่มที่คั่นด้วยช่องว่างเพื่อติดตั้งเฉพาะอัญมณีของกลุ่มที่ระบุ

path

ตำแหน่งที่จะติดตั้งอัญมณีที่กำหนด ค่าเริ่มต้นนี้เป็นการตั้งค่าของ Rubygems Bundler แชร์ตำแหน่งนี้กับ Rubygems gem install ... จะมี gem ติดตั้งอยู่ที่นั่นด้วย ดังนั้น อัญมณีที่ติดตั้งโดยไม่มีการตั้งค่า --path ... จะแสดงโดยการเรียก รายการอัญมณี ดังนั้น อัญมณีที่ติดตั้งในตำแหน่งอื่นจะไม่ปรากฏในรายการ

without

รายการที่คั่นด้วยช่องว่างของกลุ่มที่อ้างถึงอัญมณีที่จะข้ามระหว่างการติดตั้ง

with

รายการของกลุ่ม ไม่บังคับ ที่คั่นด้วยช่องว่างซึ่งอ้างอิงอัญมณีที่จะรวมระหว่างการติดตั้ง

สร้างตัวเลือก

คุณสามารถใช้ bundle config เพื่อให้ Bundler ตั้งค่าสถานะเพื่อส่งไปยังโปรแกรมติดตั้ง gem ทุกครั้งที่ Bundler พยายามติดตั้ง gem หนึ่งๆ

ตัวอย่างที่พบบ่อยมากคือ mysql gem ต้องการให้ผู้ใช้ 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

หลังจากเรียกใช้คำสั่งนี้ ทุกครั้งที่ Bundler ต้องการติดตั้งอัญมณี mysql ก็จะส่งผ่านแฟล็กที่คุณระบุ

คีย์การกำหนดค่า

คีย์การกำหนดค่าใน Bundler มีสองรูปแบบ: รูปแบบมาตรฐานและรูปแบบตัวแปรสภาพแวดล้อม

ตัวอย่างเช่น การส่งผ่านแฟล็ก --ไม่มี ไปยังบันเดิล install(1) bundle-install.1.html ป้องกัน Bundler จากการติดตั้งบางกลุ่มที่ระบุใน Gemfile(5) Bundler ยืนยันค่านี้ใน app/.bundle/config เพื่อให้การเรียกไปยัง Bundler.setup ไม่พยายามค้นหาอัญมณีจาก Gemfile ที่คุณ ไม่ได้ติดตั้ง นอกจากนี้ การเรียกใช้บันเดิล install(1) bundle-install.1.html ที่ตามมา จำการตั้งค่านี้และข้ามกลุ่มเหล่านั้น

รูปแบบมาตรฐานของการกำหนดค่านี้คือ "ไม่มี" หากต้องการแปลงรูปแบบมาตรฐานเป็นรูปแบบตัวแปรสภาพแวดล้อม ให้พิมพ์เป็นตัวพิมพ์ใหญ่และเพิ่ม BUNDLE_ ข้างหน้า รูปแบบตัวแปรสภาพแวดล้อมของ "ไม่มี" คือ BUNDLE_WITHOUT

จุดใดๆ ในคีย์การกำหนดค่าต้องแทนที่ด้วยเครื่องหมายขีดล่างสองตัวเมื่อตั้งค่าผ่านตัวแปรสภาพแวดล้อม คีย์การกำหนดค่า local.rack กลายเป็นตัวแปรสภาพแวดล้อม BUNDLE_LOCAL__RACK

รายการคีย์ที่มีอยู่

ต่อไปนี้เป็นรายการคีย์การกำหนดค่าทั้งหมดและวัตถุประสงค์ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการดำเนินการได้ใน Bundle install(1) bundle-install.1.html

allow_deployment_source_credential_changes (BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES)

เมื่ออยู่ในโหมดปรับใช้ อนุญาตให้เปลี่ยนข้อมูลประจำตัวเป็นแหล่งที่มาของอัญมณี เช่น https://some.host.com/gems/path/ -> https://user_name:password@some.host.com/gems/path

allow_offline_install (BUNDLE_ALLOW_OFFLINE_INSTALL)

อนุญาตให้ Bundler ใช้ข้อมูลที่แคชเมื่อทำการติดตั้งโดยไม่ต้องเข้าถึงเครือข่าย

auto_clean_without_path (BUNDLE_AUTO_CLEAN_WITHOUT_PATH)

เรียกใช้ การล้างบันเดิล โดยอัตโนมัติหลังจากติดตั้งเมื่อไม่ได้ตั้งค่าพาธที่ชัดเจนและไม่ได้ติดตั้ง Bundler ลงในอัญมณีระบบ

auto_install (BUNDLE_AUTO_INSTALL)

เรียกใช้ การติดตั้งชุดรวม โดยอัตโนมัติเมื่ออัญมณีหายไป

bin (BUNDLE_BIN)

ติดตั้งไฟล์เรียกทำงานจากอัญมณีในบันเดิลไปยังไดเร็กทอรีที่ระบุ ค่าเริ่มต้นเป็น เท็จ

cache_all (BUNDLE_CACHE_ALL)

แคชอัญมณีทั้งหมด รวมถึงเส้นทางและอัญมณีคอมไพล์ จำเป็นต้องกำหนดค่าอย่างชัดเจนใน Bundler 1 และ Bundler 2 แต่จะเป็นค่าเริ่มต้นใน Bundler 3

cache_all_platforms (BUNDLE_CACHE_ALL_PLATFORMS)

อัญมณีแคชสำหรับทุกแพลตฟอร์ม

cache_path (BUNDLE_CACHE_PATH)

ไดเร็กทอรีที่บันเดิลจะวางเจมที่แคชไว้เมื่อเรียกใช้ แพ็กเกจบันเดิล และบันเดิลนั้นจะมองหาเมื่อติดตั้งเจม ค่าเริ่มต้นคือ ผู้ให้บริการ/แคช

clean (BUNDLE_CLEAN)

กำหนดว่า Bundler ควรเรียกใช้ Bundle Clean โดยอัตโนมัติหลังจาก Bundle ติดตั้ง หรือไม่

console (BUNDLE_CONSOLE)

คอนโซลที่ รวมคอนโซล เริ่มทำงาน ค่าเริ่มต้นคือ irb

default_install_uses_path (BUNDLE_DEFAULT_INSTALL_USES_PATH)

กำหนดว่า bundle install ที่ไม่มีอาร์กิวเมนต์ --path ที่ชัดเจนจะมีค่าเริ่มต้นเป็นการติดตั้ง gems ใน .bundle หรือไม่

deployment (BUNDLE_DEPLOYMENT)

ไม่อนุญาตให้เปลี่ยนแปลง Gemfile เมื่อ Gemfile มีการเปลี่ยนแปลงและไฟล์ล็อกไม่ได้รับการอัปเดต การเรียกใช้คำสั่ง Bundler จะถูกบล็อก

disable_checksum_validation (BUNDLE_DISABLE_CHECKSUM_VALIDATION)

อนุญาตให้ติดตั้งอัญมณีได้ แม้ว่าจะไม่ตรงกับผลรวมตรวจสอบที่ RubyGems ให้มาก็ตาม

disable_exec_load (BUNDLE_DISABLE_EXEC_LOAD)

หยุด Bundler จากการใช้ โหลด เพื่อเปิดใช้งานการดำเนินการระหว่างดำเนินการใน bundle exec

disable_local_branch_check (BUNDLE_DISABLE_LOCAL_BRANCH_CHECK)

อนุญาตให้ Bundler ใช้การแทนที่ git ในเครื่องโดยไม่ต้องระบุสาขาใน Gemfile

disable_local_revision_check (BUNDLE_DISABLE_LOCAL_REVISION_CHECK)

อนุญาตให้ Bundler ใช้การแทนที่ git ในเครื่องโดยไม่ต้องตรวจสอบว่ามีการแก้ไขในไฟล์ล็อกอยู่ในที่เก็บหรือไม่

disable_shared_gems (BUNDLE_DISABLE_SHARED_GEMS)

หยุด Bundler ไม่ให้เข้าถึงอัญมณีที่ติดตั้งในตำแหน่งปกติของ RubyGems

disable_version_check (BUNDLE_DISABLE_VERSION_CHECK)

หยุด Bundler ไม่ให้ตรวจสอบว่ามี Bundler เวอร์ชันใหม่บน rubygems.org หรือไม่

force_ruby_platform (BUNDLE_FORCE_RUBY_PLATFORM)

ไม่ต้องสนใจแพลตฟอร์มของเครื่องปัจจุบันและติดตั้งอัญมณีแพลตฟอร์ม ทับทิม เท่านั้น ด้วยเหตุนี้ อัญมณีที่มีส่วนขยายแบบเนทีฟจะถูกรวบรวมจากแหล่งที่มา

frozen (BUNDLE_FROZEN)

ไม่อนุญาตให้เปลี่ยนแปลง Gemfile เมื่อ Gemfile มีการเปลี่ยนแปลงและไฟล์ล็อกไม่ได้รับการอัปเดต การเรียกใช้คำสั่ง Bundler จะถูกบล็อก ค่าเริ่มต้นเป็น จริง เมื่อใช้ --การปรับใช้

gem.github_username (BUNDLE_GEM__GITHUB_USERNAME)

ตั้งชื่อผู้ใช้หรือองค์กร GitHub ที่จะใช้ในไฟล์ README เมื่อคุณสร้าง gem ใหม่ผ่านคำสั่ง bundle gem สามารถลบล้างได้โดยส่งแฟล็ก --github-username ที่ชัดเจนไปยัง bundle gem

gem.push_key (BUNDLE_GEM__PUSH_KEY)

ตั้งค่าพารามิเตอร์ --key สำหรับ gem push เมื่อใช้คำสั่ง rake release กับเซิร์ฟเวอร์ gemstash ส่วนตัว

gemfile (BUNDLE_GEMFILE)

ชื่อของไฟล์ที่ Bundler ควรใช้เป็น Gemfile ตำแหน่งของไฟล์นี้ยังตั้งค่ารูทของโปรเจ็กต์ ซึ่งใช้เพื่อแก้ไขพาธสัมพัทธ์ใน Gemfile เหนือสิ่งอื่นใด โดยค่าเริ่มต้น Bundler จะค้นหาจากไดเร็กทอรีการทำงานปัจจุบันจนกว่าจะพบ Gemfile

global_gem_cache (BUNDLE_GLOBAL_GEM_CACHE)

Bundler ควรแคชอัญมณีทั้งหมดทั่วโลกหรือไม่ แทนที่จะเก็บไว้ในเครื่องเพื่อติดตั้ง Ruby ที่ติดตั้ง

ignore_funding_requests (BUNDLE_IGNORE_FUNDING_REQUESTS)

เมื่อตั้งค่าแล้ว จะไม่มีการพิมพ์คำขอเงินทุน

ignore_messages (BUNDLE_IGNORE_MESSAGES)

เมื่อตั้งค่าแล้ว จะไม่มีการพิมพ์ข้อความหลังการติดตั้ง หากต้องการปิดเสียงเจ็มเดียว ให้ใช้เครื่องหมายจุด เช่น ignore_messages.httparty true

init_gems_rb (BUNDLE_INIT_GEMS_RB)

สร้าง gems.rb แทน Gemfile เมื่อเรียกใช้ bundle init

jobs (BUNDLE_JOBS)

จำนวนของอัญมณี Bundler ที่สามารถติดตั้งแบบขนานได้ ค่าดีฟอลต์คือจำนวนโปรเซสเซอร์ที่มีอยู่

no_install (BUNDLE_NO_INSTALL)

ตกลงว่า แพ็กเกจบันเดิล ควรข้ามการติดตั้งอัญมณีหรือไม่

no_prune (BUNDLE_NO_PRUNE)

Bundler ควรปล่อยให้อัญมณีที่ล้าสมัยไม่ถูกตัดแต่งเมื่อทำการแคชหรือไม่

only (BUNDLE_ONLY)

รายการกลุ่มที่คั่นด้วยช่องว่างเพื่อติดตั้งเฉพาะอัญมณีของกลุ่มที่ระบุ

path (BUNDLE_PATH)

ตำแหน่งบนดิสก์ที่อัญมณีทั้งหมดในกลุ่มของคุณจะอยู่โดยไม่คำนึงถึงค่า $GEM_HOME หรือ $GEM_PATH ไม่พบ Bundle gems ในตำแหน่งนี้จะถูกติดตั้งโดย การติดตั้ง Bundle ค่าเริ่มต้นคือ Gem.dir เมื่อใช้ --deployment ค่าเริ่มต้นจะเป็น vendor/bundle

path.system (BUNDLE_PATH__SYSTEM)

Bundler จะติดตั้งอัญมณีในเส้นทางเริ่มต้นของระบบหรือไม่ (Gem.dir)

path_relative_to_cwd (BUNDLE_PATH_RELATIVE_TO_CWD)

ทำให้ --path สัมพันธ์กับ CWD แทนที่จะเป็น Gemfile

plugins (BUNDLE_PLUGINS)

เปิดใช้งานระบบปลั๊กอินทดลองของ Bundler

prefer_patch (BUNDLE_PREFER_PATCH)

ต้องการอัปเดตเป็นเวอร์ชันแพตช์ถัดไปเท่านั้นในระหว่างการอัปเดต ทำให้การเรียก bundle update เทียบเท่ากับ bundler update --patch

print_only_version_number (BUNDLE_PRINT_ONLY_VERSION_NUMBER)

พิมพ์เฉพาะหมายเลขเวอร์ชันจาก bundler --version

redirect (BUNDLE_REDIRECT)

จำนวนการเปลี่ยนเส้นทางที่อนุญาตสำหรับคำขอเครือข่าย ค่าเริ่มต้นคือ 5

retry (BUNDLE_RETRY)

จำนวนครั้งในการลองคำขอเครือข่ายที่ล้มเหลวอีกครั้ง ค่าเริ่มต้นคือ 3

setup_makes_kernel_gem_public (BUNDLE_SETUP_MAKES_KERNEL_GEM_PUBLIC)

ให้ Bundler.setup ทำให้เมธอด Kernel#gem เป็นแบบสาธารณะ แม้ว่า RubyGems จะประกาศว่าเป็นแบบส่วนตัวก็ตาม

shebang (BUNDLE_SHEBANG)

ชื่อโปรแกรมที่ควรเรียกใช้สำหรับ binstubs ที่สร้างขึ้น ค่าเริ่มต้นเป็นชื่อการติดตั้ง ruby ที่ใช้สร้าง binstub

silence_deprecations (BUNDLE_SILENCE_DEPRECATIONS)

กำหนดว่า Bundler ควรปิดเสียงคำเตือนการเลิกใช้งานสำหรับลักษณะการทำงานที่จะเปลี่ยนแปลงในเวอร์ชันหลักถัดไปหรือไม่

silence_root_warning (BUNDLE_SILENCE_ROOT_WARNING)

ปิดเสียงคำเตือน Bundler พิมพ์เมื่อติดตั้งอัญมณีเป็นรูท

ssl_ca_cert (BUNDLE_SSL_CA_CERT)

พาธไปยังไฟล์หรือโฟลเดอร์ใบรับรอง CA ที่กำหนดซึ่งมีใบรับรองหลายรายการสำหรับ CA ที่เชื่อถือได้ในรูปแบบ PEM

ssl_client_cert (BUNDLE_SSL_CLIENT_CERT)

พาธไปยังไฟล์ที่กำหนดซึ่งมีใบรับรองไคลเอ็นต์ X.509 และคีย์ในรูปแบบ PEM

ssl_verify_mode (BUNDLE_SSL_VERIFY_MODE)

Bundler โหมดการตรวจสอบ SSL ใช้เมื่อส่งคำขอ HTTPS ค่าเริ่มต้นเพื่อตรวจสอบเพียร์

suppress_install_using_messages (BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES)

หลีกเลี่ยงการพิมพ์ข้อความ ใช้ ... ระหว่างการติดตั้งเมื่อเวอร์ชันของอัญมณีไม่เปลี่ยนแปลง

system_bindir (BUNDLE_SYSTEM_BINDIR)

ตำแหน่งที่ RubyGems ติดตั้ง binstubs ค่าเริ่มต้นคือ Gem.bindir

timeout (BUNDLE_TIMEOUT)

วินาทีที่อนุญาตก่อนหมดเวลาสำหรับคำขอเครือข่าย ค่าเริ่มต้นคือ 10

update_requires_all_flag (BUNDLE_UPDATE_REQUIRES_ALL_FLAG)

กำหนดให้ส่ง --ทั้งหมด ไปยัง การอัปเดตชุดรวม เมื่อทุกอย่างควรอัปเดต และไม่อนุญาตให้ส่งตัวเลือกใด ๆ เพื่อ อัปเดตชุดรวม

user_agent (BUNDLE_USER_AGENT)

Bundler ส่วนตัวแทนผู้ใช้ที่กำหนดเองรวมอยู่ในคำขอ API

with (BUNDLE_WITH)

: รายการแยกกลุ่มที่ควรติดตั้ง gems bundler

without (BUNDLE_WITHOUT)

รายการ : ของกลุ่มที่แยกกลุ่มซึ่งไม่ควรติดตั้ง gems bundler

โดยทั่วไป คุณควรตั้งค่าเหล่านี้ต่อแอปพลิเคชันโดยใช้แฟล็กที่ใช้ได้กับการติดตั้งบันเดิล(1) bundle-install.1.html หรือบันเดิลแคช(1) บันเดิลแคช คำสั่ง 1.html

คุณสามารถตั้งค่าส่วนกลางได้โดยใช้ตัวแปรสภาพแวดล้อมหรือ การกำหนดค่าบันเดิล ขึ้นอยู่กับว่าคุณต้องการการตั้งค่าแบบใด หากคุณใช้ทั้งสองอย่าง ตัวแปรสภาพแวดล้อมจะใช้การตั้งค่ามากกว่าการตั้งค่าส่วนกลาง

REPOS GIT ท้องถิ่น

Bundler ยังช่วยให้คุณสามารถทำงานกับที่เก็บ git ในเครื่องแทนการใช้เวอร์ชันระยะไกล ซึ่งสามารถทำได้โดยการตั้งค่าการแทนที่ในเครื่อง:

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

ตัวอย่างเช่น ในการใช้ที่เก็บแร็คในเครื่อง นักพัฒนาสามารถเรียก:

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

ตอนนี้แทนที่จะตรวจสอบที่เก็บ git ระยะไกล ระบบจะใช้การแทนที่ในเครื่อง เช่นเดียวกับแหล่งที่มาของเส้นทาง ทุกครั้งที่ที่เก็บ git ในเครื่องเปลี่ยน Bundler จะรับการเปลี่ยนแปลงโดยอัตโนมัติ ซึ่งหมายความว่าการกระทำใน repo git ในเครื่องจะอัปเดตการแก้ไขใน Gemfile.lock เป็นการแก้ไข repo 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"

สำหรับอัญมณีที่มีแหล่งคอมไพล์ที่มี HTTP(S) URL คุณสามารถระบุข้อมูลประจำตัวได้ดังนี้:

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 . เพื่อหลีกเลี่ยงไม่ให้ข้อมูลประจำตัวรั่วไหลโดยไม่ได้ตั้งใจเมื่อเอาต์พุตของ Bundler คัดลอกและวาง

โปรดทราบว่าเพื่อรับประกันการแมปที่เหมาะสมระหว่างชื่อตัวแปรสภาพแวดล้อมที่ถูกต้องและชื่อโฮสต์ที่ถูกต้อง Bundler จะทำการแปลงดังต่อไปนี้:

-
.

อักขระเหล่านี้ในชื่อโฮสต์จะถูกจับคู่กับเส้นประคู่ (__) ในตัวแปรสภาพแวดล้อมที่เกี่ยวข้อง

ซึ่งหมายความว่าหากคุณมีเซิร์ฟเวอร์อัญมณีชื่อ my.gem-host.com คุณจะต้องใช้ตัวแปร BUNDLE_MY__GEM___HOST__COM เพื่อกำหนดค่าข้อมูลประจำตัวผ่าน ENV

กำหนดค่าไดเร็กทอรี BUNDLER

ไดเร็กทอรี home, config, cache และ plugin ของ Bundler สามารถกำหนดค่าผ่านตัวแปรสภาพแวดล้อมได้ ตำแหน่งเริ่มต้นสำหรับโฮมไดเร็กทอรีของ 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