Usuwanie listy maszyn wirtualnych w pamięci podręcznej włóczęgi

111

Nie szukam tej odpowiedzi, ponieważ moje pytanie jest inne.

Kiedy piszę vagrant global-status, otrzymuję listę maszyn wirtualnych, ale niektóre z tych katalogów i maszyn wirtualnych zostały usunięte wraz z plikami Vagrantfiles.

Ale kiedy piszęvagrant destroy [machineid] , pojawia się następujący błąd, który chcę rozwiązać. Proszę doradź.

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

/Users/steven/projects/php/vagrant-laravel
user710587
źródło

Odpowiedzi:

247

Aby usunąć nieprawidłowe wpisy z indeksu globalnego, należy użyć następującego polecenia:

vagrant global-status --prune
Emyl
źródło
Cóż, fajnie, że jest to akceptowana i pozytywnie oceniana odpowiedź, ale to „przycina” listę statusu globalnego. Oznacza to, że maszyna wirtualna nie jest już wyświetlana na liście. Jednak sama maszyna wirtualna pozostaje nietknięta. Oznacza to, że nadal trzeba wyrejestrować i usunąć go ręcznie. Najprostszą rzeczą powinno być to, że włóczęga wykonuje swoją pracę poprawnie, gdy jest dany$ vagrant destroy -f <id>
silverdr
Dane wyjściowe programu vagrant global-status --prunesą poprawne, ponieważ nie są świadome usuniętych katalogów Vagrant, ponieważ wiedza Vagranta o maszynie wirtualnej, którą zarządzał w tym katalogu, została usunięta, gdy jego pliki zarządzające maszyną wirtualną zostały usunięte. To jest teraz problem hiperwizora.
bschlueter,
Dzięki!! Szukałem to długo
Jean-Marc Amon
17

Ja też miałem ten problem. Udało mi się to naprawić, modyfikując zawartość ~/.vagrant.d/data/machine-index/index. Jest w formacie JSON, więc właśnie usunąłem dane związane z instancjami, które już nie istniały.

Usunąłem tylko dane dotyczące instancji, które już nie istnieją. Nie modyfikowałbym żadnych danych odnoszących się do instancji istniejącej w systemie plików.

Sarcastron
źródło
Zauważyłem, że jest to przydatne do czyszczenia pól statusu globalnego, które zwykle są wyłączone po ponownym uruchomieniu hosta (mojego Maca). To sprawia, że ​​zastanawiam się, co robi status globalny i czy ma wpływ na ponowne podniesienie pudełka.
kaplan
14

--prunenie działa dla mnie. Usunąłem ~/.vagrant, ~/.vagrant.da .vagrant. I ręcznie usunięto utrzymujące się maszyny wirtualne.

Migrowałem z powrotem gemsi boxesz oryginału ~/.vagrant.d. Być może można spróbować usunąć tylko maszynę z, .vagrantale tego nie testowałem.

akostadinov
źródło
2
Miałem ten problem, gdy katalog, w którym oglądano włóczęgę, został usunięty. --prune nie powiodło się, ale rm -rf ~ / .vagrant * zadziałało. Uruchomienie błędnego statusu globalnego po odtworzeniu odpowiednich katalogów. (Spowoduje to usunięcie wszystkich pobranych pudełek, które zostaną ponownie pobrane przy następnym włóczędze w razie potrzeby)
Tommy Strand
1

Posługiwać się vagrant box remove -f [name]

To działa. Gwarantowane!

Pendragon
źródło
0

użyłem

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

Usunąłem też

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

I ręcznie usunąć utrzymujące się maszyny wirtualne, jeśli istnieją.

Mehmet Özkan YAVUZ
źródło