Vagrant .box dosyalarını nereye indiriyor?


267

Aşağıdaki komut yürütüldükten sonra .box dosyasına ne olur?

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

lucid32.boxİndirme işlemi tamamlandıktan sonra dosyayı dosya sisteminde bulamıyorum .


Sanırım tamamen fikrini özlüyorum çünkü aklıma ilk gelen şey sudo find / -name lucid32.box.
irrasyonel John

tam olarak ne yaptım, ama lucid32.boxbu komutu kullanarak bulamadığım için bir şey eksik olmalıyım ...
Calvin Cheng

3
Belki de bu isimle mevcut değildir. *.boxBelki joker gibi arama yapar ? (BTW, uzantı olmaz .vboxmı?)
irrasyonel John

Evet haklısın. Arama *.vboxve için olmalıdır not *.box. Gizem çözüldü. :-) Kabul edebilmem için bir cevap girmek ister misiniz? Teşekkürler!
Calvin Cheng

1
@CalvinCheng: Bence bu bir tar arşivinde sadece bir .vbox görüntüsü olduğundan yanıldınız. Gerçekten bir tar arşivi, ancak box-disk1.vmdk, box.ovf ve Vagrantfile gibi dosyalar içeriyor. Bunların VirtualBox'ın kullandığı dosyaları oluşturmak için nasıl kullanıldığını tam olarak bilmiyorum, ancak VB'nin .vbox dosyasını açarsanız sadece XML olduğunu göreceksiniz. Vagrant dosyalarını (ayrıca bir ikili ve XML dosyası, artı Vagrantfile) XML ve VirtualBox tarafından kullanılan ikili dosyalar dönüştürür varsayalım. Bununla birlikte, ikili dosyaları açarsanız, farklı olduklarını görürsünüz, bu basit bir şekilde untarring ve yeniden adlandırma meselesi değildir.
iconoclast

Yanıtlar:


397

Dokümanlarda belirtildiği gibi , kutular şu konumda depolanır:

  • Mac OS X ve Linux: ~/.vagrant.d/boxes
  • Pencereler: C:/Users/USERNAME/.vagrant.d/boxes

1
Ah. Açıklama için teşekkürler. Dokümanlardaki bu açıklamayı kaçırmadığım için kör olmalıyım.
Calvin Cheng

1
@manojlds: re: .vbox dosyası hakkındaki soruma bakın. Kendi başına VM değil, sadece bir XML dosyası.
iconoclast

Windows işletim sisteminde aynı yerde mi?
Arruda

34
VAGRANT_HOME = D: \. Vagrant.d'deki gibi .vagrant.d'nin konumunu belirtmek için env var VAGRANT_HOME'u da kullanabilirsiniz (Evet, Windows'ta da çalışır).
Sven

5
içinde C:\Users\{username}\.vagrant.d\boxesilgili pencereler, ben sadece bulundu .vmdkdosyayı değil .box!!
Bilal

76

Mac / Linux Sisteminde, başarıyla indirilen kutular:

~/.vagrant.d/boxes

ve başarısız kutular:

~/.vagrant.d/tmp

Windows sistemlerinde, Kullanıcılar klasörü altında bulunur:

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

Umarım bu yardımcı olur. Teşekkürler


10
Bunun neden reddedildiğinden emin değilim. Başarısız indirme işlemlerinin hedefi hakkında bilgi yararlı oldu.
Alex Coventry

~/.vagrant.d/boxesAsla .box dosyasını saklamıyor, sadece içeriği. ~/.vagrant/tmp, indirirken .box'ı geçici olarak saklamak için kullanılır, ancak Vagrant içinde kurulum üzerine silinir.
Luke Peterson

Üçüncü satır (Windows için)%userprofile%\.vagrant.d\boxes
J. Scott Elblein

Bu yanıt, sabit disk alanınızı gerçekten önemsediğiniz durum içindir.
kiltek


20

.boxİndirme ve kutu kurulumu tamamlandıktan sonra gerçek dosya Vagrant tarafından silinir. Diğer yanıtlarda belirtildiği gibi, indirirken .box dosyası şu şekilde depolanır:

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

burada dosya adı 'kutu', ardından 40 baytlık onaltılık bir karma olur. Örneğin, sistemimdeki geçici bir dosya:

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

Anlayabildiğim kadarıyla, bu dosya asla bir *.boxuzantıyla kaydedilmez , bu da yukarıdaki aramaların neden onu bulamadığını açıklar. Gerçek kutu dosyasını almanın iki yolu vardır:

  1. .Box dosyasını vagrantcloud.com adresinden indirin

    1. Atlas'ta ilgilendiğiniz kutuyu bulun . Örneğin, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. Alan adını ile değiştirin vagrantcloud.com. Yani https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1 olur https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box .
    3. Ekle /providers/virtualbox.boxBu URL'nin sonuna. Yani https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 olur https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box
    4. .Box dosyasını kaydedin
    5. .Box'ı istediğiniz gibi kullanın; örneğin, kendiniz barındırmak ve config.vm.box_urlURL'yi işaret etmek. VEYA
  2. .Box'ı doğrudan Vagrant'tan edinin

    Bu, başarılı bir indirme işleminden sonra Vagrant'ın kutuyu silmesini önlemek için yakut kaynağını değiştirmenizi gerektirir.

    1. Vagrant kurulum dizininizdeki box_add.rb dosyasını bulun. Benim sistemimde/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    2. Box_add işlevini bulun. box_addİşlev içinde aşağıdakileri okuyan bir blok vardır:

      emin olun # Geçici dosyayı ekledikten sonra sildiğimizden emin olun. eğer! @download_interrupted @ logger.debug ("Geçici kutunun silinmesi: # {box_url}") box_url.delete başlarsa box_url rescue Errno :: ENOENT # Büyük bir anlaşma değil, geçici dosya aslında mevcut olmayabilir

    3. Bu engeli yorumlayın.
    4. Düğmesini kullanarak başka bir kutu ekleyin vagrant add box <boxname>.
    5. İndirilmesini bekleyin. ~/.vagrant.d/tmp/Dizine bir boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXdosya olarak kaydetmesini izleyebilirsiniz .
    6. Dosyayı daha kullanışlı bir adla yeniden adlandırın. Ör mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box.

Bunu neden istiyorsun?

Benim için bu, .box dosyasını almak için kullanışlıdır, böylece HashiCorp'un Atlas kutu kataloğundan veya başka bir kutu sağlayıcısından indirmenin aksine yerel, hızlı altyapıda barındırılabilir .

Bu, çok kesin bir kullanım durumuna sahip olduğu için varsayılan Vagrant işlevselliğinin bir parçası olmalıdır.


yüklenebilir bir kutu dosyası oluşturmak için kutuları klasöründeki alt klasörleri beğenmek, sıkıştırmak veya katlamak mümkün mü?
ThorSummoner

@ThorSummoner Evet, ancak Vagrant'ın bu durumda, örneğin, docs.vagrantup.com/v2/cli/package.htmlvagrant package komutuyla işlemesine izin verebilirsiniz .
Luke Peterson

15

@Luke Peterson: .box dosyasını almanın daha basit bir yolu var.

Https://atlas.hashicorp.com/boxes/search adresine gidin , indirmek istediğiniz kutuyu arayın. Kutunun URL'sine dikkat edin, örneğin:

https://atlas.hashicorp.com/ ubuntu / kutular / trusty64 / sürümler / 20150530.0.1

Ardından bu kutuyu aşağıdaki gibi bir URL kullanarak indirebilirsiniz:

https://vagrantcloud.com/ ubuntu / kutuları / trusty64 / sürümler / 20150530.0.1 /providers/virtualbox.box

İhtiyacım olan tüm kutuları denedim ve başarıyla indirdim. Umarım yardımcı olur.


Bu büyük bir keşif! Teşekkür ederim. ;)
Luke Peterson

Bağlantı kesildi - değiştirilmesi gerekiyor: app.vagrantup.com .
RtmY

6

Windows'da, konumu burada bulabilirsiniz. Bunun için internette herhangi bir belge bulamadım ve bu benim için hemen belli değildi:

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


% Userprofile% \. Vagrant.d \ kutuları çalışır mı? % userprofile%, c: \ users \ {username} olarak
genişliyor

2

Ek olarak

Mac:
~/.vagrant.d/

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

Temiz bir başlangıç ​​yapmak için VirtualBox / OtherVMprovider içindeki dosyaları silmeniz gerekir.


0

On Windows 10'a ile Vagrant 2.2.2 , ortam değişkeni VAGRANT_HOMEkutuları için belirtilen klasörün bir alt klasörüne indirilir sağlayacaktır VAGRANT_HOME.

Benim durumumda ben ayarlamak VAGRANT_HOMEiçin e:\vagrant_home, ve kutular altında depolanır e:\vagrant_home\boxes.

Bu benim için çalışıyor.

Kutuların saklandığı yer burası . Sanal makineleri Sanal Box yapılandırılan klasörde oluşturuluyor. VirtualBox VM depolama klasörü ayarlamak için şu adrese gidin: VirtualBox GUI --> File --> Preferences --> General --> Default Machine Folder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.