Menghapus daftar vms di cache gelandangan

111

Saya tidak mencari jawaban ini , karena pertanyaan saya berbeda.

Ketika saya mengetik vagrant global-statussaya mendapatkan daftar vms, tetapi beberapa dari direktori dan VM itu telah dihapus bersama dengan Vagrantfiles.

Tetapi ketika saya mengetik vagrant destroy [machineid], saya mendapatkan kesalahan berikut, yang ingin saya selesaikan. Mohon saran.

The working directory for Vagrant doesn't exist! This is the
specified working directory:

/Users/steven/projects/php/vagrant-laravel
pengguna710587
sumber

Jawaban:

247

Anda harus menggunakan perintah berikut untuk menghapus entri yang tidak valid dari indeks global:

vagrant global-status --prune
Emyl
sumber
Yah, bagus bahwa itu adalah jawaban yang diterima dan dipilih, tapi ini "memangkas" daftar status global. Artinya VM tidak lagi muncul dalam daftar. VM itu sendiri tetap tidak tersentuh. Artinya seseorang masih harus membatalkan pendaftaran dan menghapusnya secara manual. Hal yang sangat sederhana adalah bahwa gelandangan melakukan tugasnya dengan benar saat diberikan$ vagrant destroy -f <id>
silverdr
Outputnya vagrant global-status --prunebenar untuk tidak mengetahui direktori Vagrant yang dihapus karena pengetahuan Vagrant tentang VM yang dikelolanya di direktori itu telah dihapus ketika file-nya yang mengelola VM itu. Ini masalah hypervisor sekarang.
bschlueter
Terima kasih!! Saya mencari ini lama sekali
Jean-Marc Amon
17

Saya mengalami masalah ini juga. Saya dapat memperbaikinya dengan mengubah konten ~/.vagrant.d/data/machine-index/index. Itu dalam format JSON jadi saya baru saja menghapus data yang terkait dengan instance yang tidak ada lagi.

Saya hanya menghapus data yang terkait dengan kejadian yang sudah tidak ada lagi. Saya tidak akan mengubah data apa pun yang terkait dengan sebuah instance yang ada di sistem file.

Sarcastron
sumber
Saya menemukan ini berguna untuk hanya membersihkan kotak status global, yang biasanya mati ketika saya me-restart host (mac saya). Itu membuat saya bertanya-tanya apa yang dilakukan status global dan apakah itu berpengaruh pada peningkatan kotak lagi.
kaplan
14

--prunetidak berhasil untuk saya. Saya dihapus ~/.vagrant, ~/.vagrant.ddan .vagrant. Dan secara manual menghapus VM yang tersisa.

Saya bermigrasi kembali gemsdan boxesdari aslinya ~/.vagrant.d. Mungkin seseorang hanya dapat mencoba menghapus mesin dari .vagranttetapi saya tidak mengujinya.

akostadinov
sumber
2
Saya mengalami masalah ini ketika direktori tempat gambar gelandangan itu dilihat telah dihapus. --prune gagal tetapi rm -rf ~ / .vagrant * berfungsi. Menjalankan status global gelandangan setelah membuat ulang direktori yang sesuai. (Ini menghapus semua kotak yang diunduh ke mereka akan diunduh ulang pada gelandangan berikutnya sesuai kebutuhan)
Tommy Strand
1

Menggunakan vagrant box remove -f [name]

Berhasil. Terjamin!

Pendragon
sumber
0

Saya dulu

vagrant global-status --prune
vagrant box remove -f [name]

Juga saya hapus

~/.vagrant, ~/.vagrant.d and .vagrant. 

Dan secara manual menghapus VM yang tersisa jika ada.

Mehmet Özkan YAVUZ
sumber