【Vagrant】vagrant upするとエラーが発生するようになったので修正しました、という軌跡

# Vagrantがおかしい

しばらくLaravelを使用していなかったのですが、今回久しぶりにLaravelを使おうと思い、Homesteadを入れて
`vagrant up`すると動かなかったんでVagrantを直しました。
その際の軌跡をここに記しておきます。

（※基本的にWin10でコマンドプロンプト上での操作です。）

# Vagrant修正の軌跡

## `vagrant up`するとエラー発生

`vagrant up`すると妙なエラーが出た

```
>vagrant up
```

いつものようにいろいろ表示された後、以下のようなエラーが発生。

```
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/sbin/ifdown 'eth1' || true
/sbin/ip addr flush dev 'eth1'
# Remove any previous network modifications from the interfaces file
sed -e '/^#VAGRANT-BEGIN/,$ d' /etc/network/interfaces > /tmp/vagrant-network-interfaces.pre
sed -ne '/^#VAGRANT-END/,$ p' /etc/network/interfaces | tac | sed -e '/^#VAGRANT-END/,$ d' | tac > /tmp/vagrant-network-interfaces.post

cat \
  /tmp/vagrant-network-interfaces.pre \
  /tmp/vagrant-network-entry \
  /tmp/vagrant-network-interfaces.post \
  > /etc/network/interfaces

rm -f /tmp/vagrant-network-interfaces.pre
rm -f /tmp/vagrant-network-entry
rm -f /tmp/vagrant-network-interfaces.post

/sbin/ifup 'eth1'

Stdout from the command:



Stderr from the command:

bash: line 5: /sbin/ifdown: No such file or directory
bash: line 21: /sbin/ifup: No such file or directory
```

なんじゃこりゃ
とりあえずエラー文でググってみると以下のissuesが引っかかった。

https://github.com/hashicorp/vagrant/issues/9213
https://github.com/laravel/homestead/issues/867

> This is not a Homestead issue, but a Vagrant issue with 18.04 Ubuntu. Since you're on Windows you should stick to Vagrant version 2.0.3

なんかHomesteadの不具合ではなく18.04 Ubuntuの不具合らしく、Vagrant2.0.3以上で解決されたっぽい。
自分のバージョンを調べたところ

```
>vagrant --version
Vagrant 1.9.7
```

1.9.7でした。

## Vagrantのバージョンを上げてみる

とりあえずvagrantを最新版へアップデート
https://www.vagrantup.com/

最新版をインストールして再起動をしてから再び`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-hostsupdater (> 0)'
```

今度は違うエラーが発生。

google翻訳をかけてみる

```
Vagrantは初期段階で初期化に失敗しました：

プラグインが正しく初期化できませんでした。これは手動によるものかもしれません
Vagrantのホームディレクトリ内で行われた変更。
次のコマンドを実行してこの問題を自動的に修正しようとします。

  vagrant plugin repair

Vagrantが最近更新された場合、このエラーは互換性がない可能性があります
依存関係のバージョン。この問題を解決するには、削除してから再インストールしてください
すべてのプラグイン。以下のコマンドを実行すると、Vagrantは自動的にこれを行うことができます。

  vagrant plugin expunge --reinstall

または、インストールされているプラグインを最新のものに更新してみてください
バージョン：

  vagrant plugin update

初期化中に指定されたエラーメッセージ：依存関係を解決できません：ユーザーが 'vagrant-hostsupdater（> 0）'をリクエストしました
```

## `vagrant plugin expunge --reinstall`を実行

Vagrantはついさっき更新したので、2番目の`vagrant plugin expunge --reinstall`を実行

```
>vagrant plugin expunge --reinstall

This command permanently deletes all currently installed user plugins. It
should only be used when a repair command is unable to properly fix the
system.

Continue? [N]:

Vagrant expunge has been declined. Skipping removal of plugins.

Vagrant will now attempt to reinstall user plugins that were removed.
Installing the 'vagrant-hostsupdater' plugin. This can take a few minutes...
Fetching: vagrant-hostsupdater-1.1.1.160.gem (100%)
Installed the plugin 'vagrant-hostsupdater (1.1.1.160)'!
```

なんかうまくいった感じがする。

で再び`vagrant up`をしてみるとうまく動きました！
よかったよかった

# おわり
- そろそろDocker使っていきたい

# 参考
- [Windows 10 Fall Creators Update にアップデートしたら vagrant up で仮想マシンが起動しない場合の対処方法 - Qiita](https://qiita.com/tikkss@github/items/312137472b7bd1a419ae)