.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 *.box
uzantı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:
.Box dosyasını vagrantcloud.com adresinden indirin
- Atlas'ta ilgilendiğiniz kutuyu bulun . Örneğin,
https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
- 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 .
- Ekle
/providers/virtualbox.box
Bu 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
- .Box dosyasını kaydedin
- .Box'ı istediğiniz gibi kullanın; örneğin, kendiniz barındırmak ve
config.vm.box_url
URL'yi işaret etmek. VEYA
.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.
- 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
- 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
- Bu engeli yorumlayın.
- Düğmesini kullanarak başka bir kutu ekleyin
vagrant add box <boxname>
.
- İndirilmesini bekleyin.
~/.vagrant.d/tmp/
Dizine bir boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
dosya olarak kaydetmesini izleyebilirsiniz .
- 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.
sudo find / -name lucid32.box
.