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

Odpowiedzi:


247

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

vagrant global-status --prune

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.


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.


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!


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ą.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.