Removendo lista de vms no cache do vagrant

111

Não estou procurando essa resposta, porque minha pergunta é diferente.

Quando eu digito vagrant global-status, recebo uma lista de vms, mas alguns desses diretórios e VMs foram excluídos junto com os Vagrantfiles.

Mas quando digito vagrant destroy [machineid], obtenho o seguinte erro, que estou tentando resolver. Por favor informar.

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

/Users/steven/projects/php/vagrant-laravel
user710587
fonte

Respostas:

247

Você deve usar o seguinte comando para remover entradas inválidas do índice global:

vagrant global-status --prune
Emyl
fonte
Bem, é bom que seja uma resposta aceita e votada positivamente, mas isso "poda" a lista de status global. O que significa que a VM não aparece mais na lista. A própria VM permanece intacta, no entanto. O que significa que ainda é necessário cancelar o registro e excluí-lo manualmente. A coisa muito simples deveria ser que o vagabundo faz seu trabalho corretamente quando dado$ vagrant destroy -f <id>
silverdr
A saída de vagrant global-status --pruneestá correta por não estar ciente dos diretórios Vagrant excluídos, visto que o conhecimento do Vagrant sobre a VM que ele gerenciava naquele diretório foi removido quando seus arquivos gerenciando a VM foram. É o problema do hipervisor agora.
bschlueter
Obrigado!! Pesquisei muito tempo
Jean-Marc Amon
17

Eu também tive esse problema. Consegui consertar modificando o conteúdo de ~/.vagrant.d/data/machine-index/index. Está no formato JSON, então acabei de remover os dados relacionados a instâncias que não existiam mais.

Eu apenas removi os dados referentes a instâncias que não existem mais. Eu não modificaria nenhum dado relacionado a uma instância existente no sistema de arquivos.

Sarcastron
fonte
Achei isso útil apenas para limpar as caixas de status global, que geralmente estão desligadas quando eu reinicio o host (meu mac). Isso me faz imaginar o que o status global faz e se ele tem um efeito em melhorar a caixa novamente.
Kaplan
14

--prunenão funcionou para mim. I removido ~/.vagrant, ~/.vagrant.de .vagrant. E removeu manualmente as VMs remanescentes.

Eu migrei de volta gemse boxesdo original ~/.vagrant.d. Talvez se possa tentar apenas remover a máquina, .vagrantmas não testei isso.

Akostadinov
fonte
2
Eu tive esse problema quando o diretório em que a imagem do vagrant foi iniciada foi excluído. --prune falhou, mas rm -rf ~ / .vagrant * funcionou. Executando vagrant global-status após recriar os diretórios apropriados. (Isso remove todas as caixas baixadas para que sejam baixadas novamente no próximo vagrant conforme necessário)
Tommy Strand
1

Usar vagrant box remove -f [name]

Funciona. Garantido!

Pendragon
fonte
0

eu usei

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

Também removi

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

E removeu manualmente as VMs remanescentes, se houver.

Mehmet Özkan YAVUZ
fonte