2012-04-14 14 views
217

Cosa succede al file .box dopo l'esecuzione del seguente comando?Da dove Vagrant scarica i suoi file .box?

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

non riesco a trovare il file lucid32.box sul file system dopo il download è stato completato.

+0

Penso che mi manchi completamente il tuo punto perché la prima cosa che mi viene in mente è "sudo find/-name lucid32.box". –

+0

esattamente quello che ho fatto, ma mi manca qualcosa in quanto non riesco a trovare 'lucid32.box' usando questo comando esatto ... –

+3

Forse non esiste con quel nome. Ricerche con caratteri jolly come '* .box' forse? (A proposito, l'estensione non sarebbe '.vbox'?) –

risposta

311

Come accennato in the docs, scatole vengono memorizzati in:

  • Mac OS X e Linux: ~/.vagrant.d/boxes
  • di Windows: C:/Users/USERNAME/.vagrant.d/boxes
+1

Ah. Grazie per il chiarimento. Devo essere cieco di aver perso questa spiegazione nei documenti. –

+1

@manojlds: guarda il mio commento sulla domanda re: il file .vbox. Non è la VM da sola, è solo un file XML. – iconoclast

+0

stesso posto su sistema operativo Windows? – Arruda

6

In Windows, il percorso può essere trovato qui. Non ho trovato alcuna documentazione su internet per questo, e questo non era immediatamente evidente a me:

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

+0

% filesprofilo% \ .viagrant.d \ box funzionano? % userprofile% si espande in c: \ users \ {username} – TamusJRoyce

61

Su Mac/Linux System, le scatole scaricate con successo si trovano in:

~/.vagrant.d/boxes 

e insuccesso scatole si trovano a:

~/.vagrant.d/tmp 

Sui sistemi windows che si trova sotto la cartella Users:

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

Spero che questo possa essere d'aiuto. Grazie

+9

Non so perché sia ​​stato downvoted. Le informazioni sulla destinazione dei download non riusciti sono state utili. –

+0

'~/.vagrant.d/boxes' non memorizza mai il file .box, ma è solo contenuto. '~/.vagrant/tmp' è usato per memorizzare temporaneamente la .box durante il download ma viene cancellata al momento dell'installazione in Vagrant. –

36

per modificare il percorso, è possibile impostare un nuovo percorso per un Ambiente-variabile denominata: VAGRANT_HOME

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

Quello è forse bello se si vuole avere quei vagabondi-Immagini su un altro disco rigido.

Maggiori informazioni qui della Documentazione: http://docs.vagrantup.com/v2/other/environmental-variables.html

19

Il file effettivo .box viene eliminato dalla Vagrant una volta che il download e l'installazione è completa scatola. Come già detto in altre risposte, mentre il download, il file viene memorizzato .box come:

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

in cui il nome del file è 'scatola' seguito da un 40 byte hash esadecimale. Un file temporaneo sul mio sistema, ad esempio, è:

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f 

Per quanto posso dire, questo file non viene mai salvato con un *.box estensione, il che spiega il motivo per cui le ricerche di cui sopra non sono riusciti a individuarlo. Ci sono due modi per recuperare il file di dialogo effettivo:

  1. Scarica il file .box da vagrantcloud.com

    1. trovare la casella che ti interessa su the atlas.Ad esempio, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. Sostituire il nome di dominio con vagrantcloud.com. Quindi https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1 diventa https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box.
    3. Aggiungi /providers/virtualbox.box alla fine di tale URL. Così https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 diventa https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box
    4. Salvare il file .box
    5. Utilizzare la .box come si desidera, ad esempio, che ospita da soli e indicando config.vm.box_url all'URL. O
  2. Prendi il .box direttamente dalla Vagrant

    Ciò richiede di modificare il sorgente per evitare che rubino Vagrant di eliminare la casella dopo il download di successo.

    1. Individuare il file box_add.rb nella directory di installazione di Vagrant. Sul mio sistema si trova a /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    2. Trova la funzione box_add. All'interno della funzione box_add, c'è un blocco che legge:

      Assicuriamo # Assicurarsi che si elimina il file temporaneo dopo lo aggiungiamo, # a meno che non siamo stati interrotti, nel qual caso si mantengono intorno # così abbiamo può riprendere il download in seguito. ! se @download_interrupted @ logger.debug ("Cancellazione scatola temporanea: # {} box_url") iniziano box_url.delete se box_url salvataggio Errno :: ENOENT # Non è un grosso problema, il file temporaneo non può effettivamente esistere fine fine

    3. commentare questo blocco fuori.
    4. Aggiungere un'altra casella utilizzando vagrant add box <boxname>.
    5. Attendere il download. Puoi guardarlo salvare nella directory ~/.vagrant.d/tmp/ come file boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
    6. Rinomina il file in qualcosa di più utile. Ad esempio, mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box.

Perché si vuole questo?

Per me, questo è stato utile per recuperare il file .box in modo che possa essere ospitato su un'infrastruttura locale veloce anziché scaricare da HashiCorp's Atlas box catalog o another box provider.

Questo dovrebbe essere parte della funzionalità predefinita di Vagrant in quanto ha un caso d'uso molto definitivo.

+0

è possibile aggiungere, zip o tar le sottocartelle nella cartella box per creare un file box installabile? – ThorSummoner

+0

@ThorSummoner Sì, ma si può anche lasciare che Vagrant lo gestisca in quel caso, ad es. Tramite il comando 'vagrant package': http://docs.vagrantup.com/v2/cli/package.html. –

12

@Luke Peterson: C'è un modo più semplice per ottenere il file .box.

Basta andare su https://atlas.hashicorp.com/boxes/search, cercare la casella che si desidera scaricare. Si noti l'URL della casella, e.g:

https://atlas.hashicorp.com/Ubuntu/scatole/trusty64/versioni/20150530.0.1

Poi si può scaricare dal box utilizzando URL simile a questo:

https://vagrantcloud.com/ubuntu/scatole/trusty64/versioni/20.150.530,0 .1 /providers/virtualbox.box

Ho provato e scaricato correttamente tutte le scatole di cui ho bisogno. Spero che aiuto.

+0

Questa è una grande scoperta! Grazie. ;) –

Problemi correlati