Vagrant ดาวน์โหลดไฟล์. box ไว้ที่ใด


267

เกิดอะไรขึ้นกับไฟล์. box หลังจากดำเนินการคำสั่งต่อไปนี้

vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

ฉันไม่พบlucid32.boxไฟล์ในระบบไฟล์หลังจากดาวน์โหลดเสร็จสิ้น


sudo find / -name lucid32.boxฉันคิดว่าฉันสมบูรณ์หายไปจุดของคุณเพราะสิ่งแรกที่ปรากฏในใจของฉันคือ
ไม่มีเหตุผล John

สิ่งที่ฉันทำ แต่ฉันจะต้องหายไปบางสิ่งบางอย่างในขณะที่ฉันไม่สามารถlucid32.boxใช้คำสั่งที่แน่นอนนี้ ...
Calvin Cheng

3
บางทีมันอาจไม่มีชื่อนั้น ค้นหาไวด์การ์ดเช่น*.boxอาจจะ? (BTW ส่วนขยายจะ.vboxไม่เป็นอย่างนั้นหรือ)
ไม่มีเหตุผล John

ใช่คุณถูก. การค้นหาควรจะให้และ*.vbox not *.boxแก้ไขปริศนาแล้ว :-) คุณต้องการคีย์คำตอบเพื่อที่ฉันจะยอมรับได้หรือไม่ ขอบคุณ!
Calvin Cheng

1
@ CalvinCheng: ฉันคิดว่าคุณเข้าใจผิดว่าเป็นเพียงภาพ. vbox ในไฟล์เก็บถาวร tar เป็นไฟล์เก็บถาวร tar แต่มีไฟล์เช่น box-disk1.vmdk, box.ovf และ Vagrantfile ฉันไม่รู้แน่ชัดว่าไฟล์เหล่านั้นถูกใช้เพื่อสร้างไฟล์ที่ VirtualBox ใช้อย่างไร แต่ถ้าคุณเปิดไฟล์. vbox ของ VB คุณจะเห็นว่าเป็นเพียง XML ฉันสมมติว่า Vagrant แปลงไฟล์ (เช่นไฟล์ไบนารีและ XML รวมถึง Vagrantfile) เป็นไฟล์ XML และไบนารีที่ใช้โดย VirtualBox อย่างไรก็ตามหากคุณเปิดไฟล์ไบนารี่คุณจะเห็นว่ามันแตกต่างกันดังนั้นจึงไม่ใช่เรื่องง่ายสำหรับการถอดและเปลี่ยนชื่อ
iconoclast

คำตอบ:


397

ดังที่กล่าวไว้ในเอกสารกล่องจะถูกเก็บไว้ที่:

  • Mac OS X และ Linux: ~/.vagrant.d/boxes
  • ของ windows: C:/Users/USERNAME/.vagrant.d/boxes

1
อา. ขอขอบคุณสำหรับการชี้แจง. ฉันต้องตาบอดที่จะพลาดคำอธิบายนั้นในเอกสาร
Calvin Cheng

1
@manojlds: ดูความคิดเห็นของฉันในคำถามอีกครั้ง: ไฟล์. vbox ไม่ใช่ VM โดยตัวมันเองเป็นเพียงไฟล์ XML
iconoclast

สถานที่เดียวกันบน Windows OS?
Arruda

34
คุณยังสามารถใช้ env var VAGRANT_HOME เพื่อระบุตำแหน่งของ. vagrant.d เช่นเดียวกับใน VAGRANT_HOME = D: \. vagrant.d (ใช่มันทำงานได้ใน Windows ด้วย)
Sven

5
ในC:\Users\{username}\.vagrant.d\boxesหน้าต่างฉันพบเฉพาะ.vmdkไฟล์ไม่ใช่.box!!
Bilal

76

บนระบบ Mac / Linux กล่องที่ดาวน์โหลดสำเร็จอยู่ที่:

~/.vagrant.d/boxes

และกล่องที่ไม่สำเร็จนั้นอยู่ที่:

~/.vagrant.d/tmp

บนระบบ Windows จะอยู่ภายใต้โฟลเดอร์ Users:

C:\Users\%userprofile%\.vagrant.d\boxes

หวังว่าจะช่วยได้ ขอบคุณ


10
ไม่แน่ใจว่าทำไมสิ่งนี้จึงถูกลดระดับลง ข้อมูลเกี่ยวกับปลายทางของการดาวน์โหลดที่ไม่สำเร็จมีประโยชน์
อเล็กซ์โคเวนทรี

~/.vagrant.d/boxesไม่เคยจัดเก็บไฟล์. box เอาไว้เพียงเนื้อหา ~/.vagrant/tmpใช้เพื่อเก็บ. box ชั่วคราวขณะดาวน์โหลด แต่จะถูกลบเมื่อติดตั้งภายใน Vagrant
ลุคปีเตอร์สัน

บรรทัดที่สาม (สำหรับ Windows) ควรเป็น%userprofile%\.vagrant.d\boxes
J. Scott Elblein

คำตอบนี้สำหรับกรณีที่คุณสนใจเกี่ยวกับพื้นที่ว่างในฮาร์ดดิสก์ของคุณ
kiltek

45

หากต้องการเปลี่ยนเส้นทางคุณสามารถตั้งค่าเส้นทางใหม่เป็นตัวแปรสภาพแวดล้อมชื่อ: VAGRANT_HOME

export VAGRANT_HOME=my/new/path/goes/here/

อาจจะดีถ้าคุณต้องการมีอิมเมจคนจรจัดใน HDD อื่น

ข้อมูลเพิ่มเติมที่นี่ในเอกสาร: http://docs.vagrantup.com/v2/other/environmental-variables.html


20

.boxไฟล์จริงจะถูกลบโดย Vagrant เมื่อการติดตั้งดาวน์โหลดและกล่องเสร็จสมบูรณ์ ดังที่ได้กล่าวไว้ในคำตอบอื่น ๆ ขณะดาวน์โหลดไฟล์. box จะถูกจัดเก็บเป็น:

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

โดยที่ชื่อไฟล์คือ 'box' ตามด้วยแฮ็กเลขฐานสิบหก 40 ไบต์ ตัวอย่างไฟล์ชั่วคราวในระบบของฉันคือ:

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

เท่าที่ฉันสามารถบอกได้ไฟล์นี้จะไม่ถูกบันทึกด้วย*.boxนามสกุลซึ่งอธิบายว่าทำไมการค้นหาด้านบนไม่สามารถค้นหาได้ มีสองวิธีในการเรียกคืนไฟล์กล่องจริง:

  1. ดาวน์โหลดไฟล์. box จาก vagrantcloud.com

    1. หากล่องที่คุณสนใจในแผนที่ ตัวอย่างเช่น https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. 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
    3. เพิ่ม/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
    4. บันทึกไฟล์. box
    5. ใช้. box ตามที่คุณต้องการยกตัวอย่างเช่นโฮสติ้งด้วยตัวคุณเองและชี้config.vm.box_urlไปที่ URL หรือ
  2. รับ. box โดยตรงจาก Vagrant

    คุณต้องการแก้ไขแหล่งทับทิมเพื่อป้องกัน Vagrant ลบกล่องหลังจากดาวน์โหลดสำเร็จ

    1. ค้นหาไฟล์ box_add.rb ในไดเรกทอรีการติดตั้ง Vagrant ของคุณ ในระบบของฉันมันตั้งอยู่ที่/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    2. ค้นหาฟังก์ชัน box_add ภายในbox_addฟังก์ชั่นจะมีบล็อกที่อ่าน:

      ให้แน่ใจว่า # ตรวจสอบให้แน่ใจว่าเราลบไฟล์ชั่วคราวหลังจากที่เราเพิ่ม # ยกเว้นว่าเราถูกขัดจังหวะในกรณีที่เราเก็บไว้รอบ # เพื่อให้เราสามารถดาวน์โหลดต่อในภายหลัง ถ้า! @download_interrupted @ logger.debug ("การลบกล่องชั่วคราว: # {box_url}") เริ่มต้น box_url.delete ถ้า box_url rescue Errno :: ENOENT # ไม่ใช่เรื่องใหญ่ไฟล์ temp อาจไม่มีอยู่จริงท้าย

    3. แสดงความคิดเห็นบล็อกนี้ออก
    4. vagrant add box <boxname>เพิ่มช่องอื่นโดยใช้
    5. รอให้มันดาวน์โหลด คุณสามารถดูมันบันทึกใน~/.vagrant.d/tmp/ไดเรกทอรีเป็นboxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXไฟล์
    6. เปลี่ยนชื่อไฟล์เป็นสิ่งที่มีประโยชน์มากขึ้น เช่นmv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box.

ทำไมคุณต้องการสิ่งนี้

สำหรับผมนี้ได้รับประโยชน์ในการเรียกไฟล์ .box เพื่อที่จะสามารถเป็นเจ้าภาพในท้องถิ่นโครงสร้างพื้นฐานที่รวดเร็วเมื่อเทียบกับการดาวน์โหลดจากแคตตาล็อกกล่อง HashiCorp ของ Atlasหรือผู้ให้บริการช่องอื่น

นี่ควรเป็นส่วนหนึ่งของฟังก์ชัน Vagrant เริ่มต้นเนื่องจากมีกรณีการใช้งานที่ชัดเจนมาก


เป็นไปได้ที่จะชอบ, ซิปหรือ tar โฟลเดอร์ย่อยในโฟลเดอร์กล่องเพื่อสร้างไฟล์กล่องที่ติดตั้งได้หรือไม่?
ThorSummoner

@ThorSummoner ใช่ แต่คุณเช่นกันอาจช่วยให้คนจรจัดจัดการกับมันในกรณีที่เช่นผ่านทางvagrant packageคำสั่ง: docs.vagrantup.com/v2/cli/package.html
ลุคปีเตอร์สัน

15

@Luke Peterson: มีวิธีที่ง่ายกว่าในการรับไฟล์. box

เพียงไปที่https://atlas.hashicorp.com/boxes/searchค้นหาช่องที่คุณต้องการดาวน์โหลด สังเกต URL ของกล่องเช่น:

https://atlas.hashicorp.com/ ubuntu / กล่อง / trusty64 / เวอร์ชั่น / 20150530.0.1

จากนั้นคุณสามารถดาวน์โหลดช่องนี้โดยใช้ URL ดังนี้:

https://vagrantcloud.com/ ubuntu / กล่อง / trusty64 / เวอร์ชั่น / 20150530.0.1 /providers/virtualbox.box

ฉันพยายามและดาวน์โหลดกล่องทั้งหมดที่ฉันต้องการเรียบร้อยแล้ว หวังว่าจะช่วยได้


นี่คือการค้นพบที่ยอดเยี่ยม! ขอบคุณ. ;)
Luke Peterson

การเชื่อมโยงเสียตอนนี้ - ไม่จำเป็นต้องถูกแทนที่ด้วย: app.vagrantup.com
RtmY

6

บน Windows สามารถดูตำแหน่งได้ที่นี่ ฉันไม่พบเอกสารใด ๆ ในอินเทอร์เน็ตสำหรับเรื่องนี้และนี่ไม่ชัดเจนทันทีสำหรับฉัน:

C:\Users\\{username}\\.vagrant.d\boxes


% userprofile% \. vagrant.d \ boxes ทำงานหรือไม่ % userprofile% ขยายเป็น c: \ users \ {ชื่อผู้ใช้}
TamusJRoyce

2

นอกจาก

Mac:
~/.vagrant.d/

Windows:
C:\Users\%userprofile%\.vagrant.d\boxes

คุณต้องลบไฟล์ใน VirtualBox / OtherVMprovider เพื่อเริ่มต้นใหม่ทั้งหมด


0

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

ในกรณีของฉันฉันจะตั้งค่าVAGRANT_HOMEการและช่องได้เก็บไว้ภายใต้e:\vagrant_homee:\vagrant_home\boxes

มันใช้งานได้สำหรับฉัน

นั่นคือที่เก็บกล่อง เครื่องเสมือนที่ถูกสร้างขึ้นในโฟลเดอร์การกำหนดค่าในเสมือนกล่อง การตั้งค่าการจัดเก็บโฟลเดอร์ VirtualBox VM VirtualBox GUI --> File --> Preferences --> General --> Default Machine Folderไปที่:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.