.box
ไฟล์จริงจะถูกลบโดย Vagrant เมื่อการติดตั้งดาวน์โหลดและกล่องเสร็จสมบูรณ์ ดังที่ได้กล่าวไว้ในคำตอบอื่น ๆ ขณะดาวน์โหลดไฟล์. box จะถูกจัดเก็บเป็น:
~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
โดยที่ชื่อไฟล์คือ 'box' ตามด้วยแฮ็กเลขฐานสิบหก 40 ไบต์ ตัวอย่างไฟล์ชั่วคราวในระบบของฉันคือ:
~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f
เท่าที่ฉันสามารถบอกได้ไฟล์นี้จะไม่ถูกบันทึกด้วย*.box
นามสกุลซึ่งอธิบายว่าทำไมการค้นหาด้านบนไม่สามารถค้นหาได้ มีสองวิธีในการเรียกคืนไฟล์กล่องจริง:
ดาวน์โหลดไฟล์. box จาก vagrantcloud.com
- หากล่องที่คุณสนใจในแผนที่ ตัวอย่างเช่น
https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
vagrantcloud.com
เปลี่ยนชื่อโดเมนด้วย ดังนั้นhttps://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
กลายเป็นhttps://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box
- เพิ่ม
/providers/virtualbox.box
ไปยังจุดสิ้นสุดของ URL นั้น ดังนั้น https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1กลายเป็นhttps://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box
- บันทึกไฟล์. box
- ใช้. box ตามที่คุณต้องการยกตัวอย่างเช่นโฮสติ้งด้วยตัวคุณเองและชี้
config.vm.box_url
ไปที่ URL หรือ
รับ. box โดยตรงจาก Vagrant
คุณต้องการแก้ไขแหล่งทับทิมเพื่อป้องกัน Vagrant ลบกล่องหลังจากดาวน์โหลดสำเร็จ
- ค้นหาไฟล์ box_add.rb ในไดเรกทอรีการติดตั้ง Vagrant ของคุณ ในระบบของฉันมันตั้งอยู่ที่
/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
- ค้นหาฟังก์ชัน box_add ภายใน
box_add
ฟังก์ชั่นจะมีบล็อกที่อ่าน:
ให้แน่ใจว่า # ตรวจสอบให้แน่ใจว่าเราลบไฟล์ชั่วคราวหลังจากที่เราเพิ่ม # ยกเว้นว่าเราถูกขัดจังหวะในกรณีที่เราเก็บไว้รอบ # เพื่อให้เราสามารถดาวน์โหลดต่อในภายหลัง ถ้า! @download_interrupted @ logger.debug ("การลบกล่องชั่วคราว: # {box_url}") เริ่มต้น box_url.delete ถ้า box_url rescue Errno :: ENOENT # ไม่ใช่เรื่องใหญ่ไฟล์ temp อาจไม่มีอยู่จริงท้าย
- แสดงความคิดเห็นบล็อกนี้ออก
vagrant add box <boxname>
เพิ่มช่องอื่นโดยใช้
- รอให้มันดาวน์โหลด คุณสามารถดูมันบันทึกใน
~/.vagrant.d/tmp/
ไดเรกทอรีเป็นboxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ไฟล์
- เปลี่ยนชื่อไฟล์เป็นสิ่งที่มีประโยชน์มากขึ้น เช่น
mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box
.
ทำไมคุณต้องการสิ่งนี้
สำหรับผมนี้ได้รับประโยชน์ในการเรียกไฟล์ .box เพื่อที่จะสามารถเป็นเจ้าภาพในท้องถิ่นโครงสร้างพื้นฐานที่รวดเร็วเมื่อเทียบกับการดาวน์โหลดจากแคตตาล็อกกล่อง HashiCorp ของ Atlasหรือผู้ให้บริการช่องอื่น
นี่ควรเป็นส่วนหนึ่งของฟังก์ชัน Vagrant เริ่มต้นเนื่องจากมีกรณีการใช้งานที่ชัดเจนมาก
sudo find / -name lucid32.box
ฉันคิดว่าฉันสมบูรณ์หายไปจุดของคุณเพราะสิ่งแรกที่ปรากฏในใจของฉันคือ