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

Respostas:


247

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

vagrant global-status --prune

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.


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.


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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.