MacOS アップデート後にVagrant が起動しなくなった時の対処方法メモ
MacBook airにRubyのローカル開発環境を作っていたのですが、OSのアップデートをかけたあとに、Vagrant upコマンドを叩くとエラーが出て起動しなくなりました。いろいろ調べながら、復旧させたことをメモしておきます。
vagrant up でエラー
magi:mycentos arichi$ vagrant up No usable default provider could be found for your system. Vagrant relies on interactions with 3rd party systems, known as "providers", to provide Vagrant with resources to run development environments. Examples are VirtualBox, VMware, Hyper-V. The easiest solution to this message is to install VirtualBox, which is available for free on all major platforms. If you believe you already have a provider available, make sure it is properly installed and configured. You can see more details about why a particular provider isn't working by forcing usage with `vagrant up --provider=PROVIDER`, which should give you a more specific error message for that particular provider.
※magiはPCにつけた名前です。
突然なりました。vagrantを正常に終了させても、MacOSを再起動かけても、さっぱりダメ。
さて、どうするか…。
Virtual BOXの入れ直し
OSが新しくなったのだから、Virtual BOXなどこの辺を新しくしてみようと、Virtual BOXを入れ直しをしてみることに。
まず、結論からいうと、削除よりインストールが面倒臭かった。
Finder の App からVirtual BOXのアイコンの上部メニューの「ファイル」->「ゴミ箱に入れる」より削除。
その後、
https://www.virtualbox.org/wiki/Downloads
より、
MacOS版の最新版をダウンロード -> インストール。
しかし、インストール途中でエラー発生
SIPを変更する
El Capitanから、SIP(System Integrity Protecton )というセキュリティ機能の追加があり、この機能がVirtualBoxの再インストールを邪魔しているとのこと。そこでSIPを止める方法をこころみる。
リカバリーモードに切り替える
りんごマーク->システム終了でまずは電源を完全に落とします。
その後、スイッチを入れた後、
command + r を押しっぱなし
これで立ち上がると、中央部分にメニューが並んでますが、それをつかわず、上部にあるタスクメニューから
「ユーティリティ」 -> 「ターミナル」
ここで、
$ csrutil disable
上記のコマンドをたたいたら、再起動かけます。
再起動後、ターミナルを立ち上げ、csrutil statusで確認します。
$ csrutil status System Integrity Protection status: enabled (Custom Configuration).
と出ればOKです。
Virtual BOX 再インストール
いよいよ、再インストールします。
また、ここでも「拡張機能がブロックされました」のエラーでました。
今度は
システム環境設定のセキュリティーとプライバシーの一般タブの中に、
「ダウンロードしたアプリケーションの実行許可:」の箇所に
「開発元”Oracle America, Inc.”のシステム・ソフトウェアの読み込みがブロックされました。」
とありました。これを「許可」に変更し、
もう一度、Virttual BOXをインストールします。
左下の鍵マークをクリックして変更用のパスワードを入れてやると変更できるようになります。
Vagrantの入れ直し
さて、これでvagrant upするとどうなるか?
$ vagrant up Vagrant failed to initialize at a very early stage: The plugins failed to initialize correctly. This may be due to manual modifications made within the Vagrant home directory. Vagrant can attempt to automatically correct this issue by running: vagrant plugin repair If Vagrant was recently updated, this error may be due to incompatible versions of dependencies. To fix this problem please remove and re-install all plugins. Vagrant can attempt to do this automatically by running: vagrant plugin expunge --reinstall Or you may want to try updating the installed plugins to their latest versions: vagrant plugin update Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-vbguest (> 0)'
立ち上がりません、そこで、Vagrantも新しいものをインストールしました。
https://www.vagrantup.com/downloads.html
最新版を入れて、再度、立ち上げるも、同じメッセージ。ダメ…。
そこで、いかのコマンドを実行しました。
$ vagrant plugin update Updating installed plugins... Fetching: micromachine-2.0.0.gem (100%) Fetching: vagrant-vbguest-0.15.2.gem (100%) Updated 'vagrant-vbguest' to version '0.15.2'!
どうやら、正常にアップデートされたようです。
そこで、vagrant upをたたくと
無事に起動しました。