방랑 캐시에서 VM 목록 제거


111

내가 찾는 게 아니에요 내 질문이 다르기 때문에, 대답.

입력하면 vagrant global-statusvms 목록이 표시되지만 해당 디렉터리 및 VM 중 일부는 Vagrantfiles와 함께 삭제되었습니다.

내가 입력 할 때 vagrant destroy [machineid], 내가 해결하기 위해 찾고 다음과 같은 오류를 얻을. 조언하십시오.

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

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

답변:


247

글로벌 인덱스에서 유효하지 않은 항목을 제거하려면 다음 명령을 사용해야합니다.

vagrant global-status --prune

글쎄요, 그것이 받아 들여지고 찬성 된 답변이라는 것은 좋지만, 이것은 글로벌 상태 목록을 "잘라냅니다". VM이 더 이상 목록에 표시되지 않음을 의미합니다. 하지만 VM 자체는 그대로 유지됩니다. 여전히 등록을 취소하고 수동으로 삭제해야합니다. 매우 간단한 일이 주어 졌을 때 그 방랑이 제대로 그 일을해야한다$ vagrant destroy -f <id>
silverdr

의 출력은 vagrant global-status --pruneVM을 관리하는 파일이 제거되었을 때 해당 디렉터리에서 관리하는 VM에 대한 Vagrant의 지식이 제거 되었기 때문에 삭제 된 Vagrant 디렉터리를 인식하지 않는 것이 정확합니다. 이제 하이퍼 바이저의 문제입니다.
bschlueter

감사!! 나는 이것을 오랫동안 검색했다
Jean-Marc Amon

17

나도이 문제가 있었다. 의 내용을 수정하여 수정할 수있었습니다 ~/.vagrant.d/data/machine-index/index. JSON 형식이므로 더 이상 존재하지 않는 인스턴스와 관련된 데이터를 제거했습니다.

더 이상 존재하지 않는 인스턴스와 관련된 데이터 만 제거했습니다. 파일 시스템에있는 인스턴스와 관련된 데이터는 수정하지 않습니다.


나는 이것이 호스트 (내 Mac)를 다시 시작할 때 일반적으로 꺼져있는 전역 상태 상자를 지우는 데 유용하다는 것을 알았습니다. 글로벌 상태가 무엇을하는지 그리고 그것이 상자를 다시 올리는 데 영향을 미치는지 궁금합니다.
kaplan

14

--prune나를 위해 일하지 않았다. ~/.vagrant, ~/.vagrant.d및을 제거했습니다 .vagrant. 그리고 느린 VM을 수동으로 제거했습니다.

나는 다시 마이그레이션 gemsboxes원본 ~/.vagrant.d. 아마도 하나는 기계를 제거하는 것만 시도 할 수 .vagrant있지만 나는 그것을 테스트하지 않았습니다.


2
방랑자 이미지가 표시된 디렉토리가 삭제되었을 때이 문제가 발생했습니다. --prune이 실패했지만 rm -rf ~ / .vagrant *가 작동했습니다. 적절한 디렉토리를 다시 만든 후 vagrant global-status를 실행합니다. (필요에 따라 그들이 다음 방랑 최대에 다시 다운로드됩니다에이 다운로드 한 모든 상자를 제거)
토미 스트랜드

1

사용하다 vagrant box remove -f [name]

효과가있다. 보장합니다!


0

나는 사용했다

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

또한 제거

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

남아있는 VM이있는 경우 수동으로 제거했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.