VirtualBox 7.0.10
+Vagrant 2.4.1
で構築した環境に対して、VirtualBox 7.0.22
+Vagrant 2.4.3
にアップグレードすると、vagrant-vbguest
でエラーになる。
==> default: Attempting graceful shutdown of VM...
==> default: Destroying VM and associated drives...
/usr/share/vagrant/gems/gems/vagrant-vbguest-0.32.0/lib/vagrant-vbguest/hosts/virtualbox.rb:84:in `block in guess_local_iso': undefined method `exists?' for class File (NoMethodError)
path && File.exists?(path)
^^^^^^^^
原因は、Rubyのバージョンが上がったことで、File.exists?(path)
がFile.exist?(path)
に変更されたため。
vagrant-vbguest
本家( https://github.com/dotless-de/vagrant-vbguest )はメンテナンスされておらず、このバグ修正がされていないが、Forkされたリポジトリ( )で修正されているため、そのvagrantプラグインを使用するよう変更する。
git clone https://github.com/dheerapat/vagrant-vbguest.git
cd vagrant-vbguest
# gemは環境によって異なります。パスが通っていない場合は、フルパスを指定してください。
gem build vagrant-vbguest.gemspec
vagrant plugin install ./vagrant-vbguest-0.32.1.gem
C:\> git clone https://github.com/dheerapat/vagrant-vbguest.git
C:\> cd vagrant-vbguest
# Windowsの場合、gemはVagrantをインストールした場所にあります。
C:\> & 'C:\Program Files\Vagrant\embedded\mingw64\bin\gem' build .\vagrant-vbguest.gemspec
C:\> vagrant plugin install .\vagrant-vbguest-0.32.1.gem