vagrant cache内のvmsのリストを削除する


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 --prune、Vagrantが管理しているVMに関するVagrantの知識が、VMを管理するそのファイルがあったときに削除されたため、削除されたVagrantディレクトリを認識しないことが正しいです。これがハイパーバイザの問題です。
bschlueter

ありがとう!! 私はこれを長い間検索しました
Jean-Marc Amon、

17

私にもこの問題がありました。の内容を変更することで修正できました~/.vagrant.d/data/machine-index/index。JSON形式なので、存在しなくなったインスタンスに関連するデータを削除しました。

存在しなくなったインスタンスに関連するデータのみを削除しました。ファイルシステムに存在するインスタンスに関連するデータは変更しません。


これは、ホスト(私のMac)を再起動すると通常オフになるグローバルステータスボックスをクリアするのに便利です。それは私にグローバルステータスが何をするのか、そしてそれが再び箱を上げることに影響があるのか​​疑問に思います。
カプラン

14

--pruneうまくいきませんでした。私は削除~/.vagrant~/.vagrant.dおよび.vagrant。そして、残存VMを手動で削除しました。

私は戻って移行gemsし、boxes元から~/.vagrant.d。おそらく、マシンの取り外しのみを試すことができます.vagrantが、テストしていません。


2
迷惑な画像が含まれているディレクトリが削除されたときに、この問題が発生しました。--pruneは失敗しましたが、rm -rf〜/ .vagrant *は機能しました。適切なディレクトリを再作成した後でvagrant global-statusを実行します。(これにより、ダウンロードされたすべてのボックスが削除され、必要に応じて次の浮浪者に再ダウンロードされます)
Tommy Strand


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.