最近Vagrantで新しい仮想環境を立てた際に遭遇したエラー。
どうやらvbguest(0.17.1)を使っている場合に発生することがあるっぽい?
Error発生時の状況
- VirtualBox: 5.2.24
- Vagrant: 2.2.2
- vbguest: 0.17.1
- CentOS: bento/centos-7.1
いつものようにvagrant init
後、共有フォルダ設定のために以下を実行(vagrantのvbguestプラグインで、VirtualBoxのバージョンとBoxのGuest Additionsのバージョンを合わせる)。
$ vagrant ssh
$ sudo yum install kernel-devel
$ sudo yum install gcc make
$ exit
$ vagrant plugin install vagrant-vbguest
$ vagrant vbguest
すると、何やらエラーが吐かれました。
(ログ取り忘れのため一部のみ・・・すいません><)
Error getting repository data for C7.6.1810-base, repository not found
初めて遭遇するエラー・・・レポジトリが見つからないってことはわかりますが・・・。
ということでGoogle先生にお願いしました。
解決策
調べてみると、
minidcos vagrant: Error getting repository data for C7.6.1810-base, repository not found
Comparing the vault mirror URLs, it doesn't look like 7.6.1810 is even released yet:
http://vault.centos.org/7.5.1804/os/
http://vault.centos.org/7.6.1810/os/
どうやらCentOS 7.6.1810はまだリリースされてないっていうことらしい。
そりゃレポジトリが見つからないわけだ・・・。
最終的に以下のページを参考にして解決することができました。
Broken installation on CentOS 6.10
vbguestがGuest Additionsをビルドする際に用いるcentos.rbというソースを書き換えると上手くいくようです。
vi ~/.vagrant.d/gems/2.4.4/gems/vagrant-vbguest-0.17.1/lib/vagrant-vbguest/installers/centos.rb
# - -> 消去する
# + -> 書き加える
def install_kernel_devel(opts=nil, &block)
rel = release_version
- cmd = "yum install -y kernel-devel-`uname -r` --enablerepo=C#{rel}-base --enablerepo=C#{rel}-updates"
+ # cmd = "yum install -y kernel-devel-`uname -r` --enablerepo=C#{rel}-base --enablerepo=C#{rel}-updates"
+ cmd = "yum install -y kernel-devel-`uname -r` --enablerepo=C*-base --enablerepo=C*-updates"
communicate.sudo(cmd, opts, &block)
end
:wq
で保存後、一旦$ vagrant exit
して再び$ vagrant vbguest
を実行したら、今度は問題無くGuest Additionsがビルドされ、無事共有フォルダがマウントされました。
めでたしめでたし。