Удаление списка виртуальных машин из бродячего кеша

111

Я не ищу этого ответа, потому что у меня другой вопрос.

Когда я vagrant global-statusпечатаю, я получаю список виртуальных машин, но некоторые из этих каталогов и виртуальных машин были удалены вместе с Vagrantfiles.

Но когда я печатаюvagrant destroy [machineid] , я получаю следующую ошибку, которую хочу исправить. Пожалуйста, порекомендуйте.

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

/Users/steven/projects/php/vagrant-laravel
user710587
источник

Ответы:

247

Для удаления недопустимых записей из глобального индекса следует использовать следующую команду:

vagrant global-status --prune
Emyl
источник
Что ж, приятно, что это принятый и одобренный ответ, но это «сокращает» список глобального статуса. Это означает, что виртуальная машина больше не отображается в списке. Однако сама виртуальная машина остается нетронутой. Это означает, что нужно отменить регистрацию и удалить ее вручную. Самая простая вещь должна заключаться в том, что бродяга выполняет свою работу должным образом, когда ему дают$ vagrant destroy -f <id>
silverdr
Вывод vagrant global-status --pruneверен, чтобы не знать об удаленных каталогах Vagrant, поскольку сведения Vagrant о виртуальной машине, которой он управлял в этом каталоге, были удалены, когда были удалены его файлы, управляющие виртуальной машиной. Теперь это проблема гипервизора.
bschlueter
Спасибо!! Я долго это искал
Жан-Марк Амон
17

У меня тоже была эта проблема. Я смог исправить это, изменив содержимое файла ~/.vagrant.d/data/machine-index/index. Он в формате JSON, поэтому я просто удалил данные, относящиеся к экземплярам, ​​которых больше не существует.

Я удалил только данные, относящиеся к экземплярам, ​​которых больше не существует. Я бы не стал изменять какие-либо данные, относящиеся к экземпляру, существующему в файловой системе.

Саркастрон
источник
Я нашел это полезным просто для очистки полей глобального статуса, которые обычно отключаются, когда я перезапускаю хост (мой Mac). Это заставляет меня задаться вопросом, что делает global-status и влияет ли он на повторное поднятие окна.
Каплан
14

--pruneу меня не сработало. Я удалил ~/.vagrant, ~/.vagrant.dи .vagrant. И вручную удалили устаревшие виртуальные машины.

Я мигрировал обратно gemsи boxesс оригинала ~/.vagrant.d. Возможно, можно попробовать только удалить машину, .vagrantно я этого не проверял.

akostadinov
источник
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. 

И вручную удалил устаревшие виртуальные машины, если они существуют.

Мехмет Озкан ЯВУЗ
источник