【Vagrantドキュメント意訳】03.インストール

# はじめに

本文章は、Vagrant公式サイト内のドキュメント内の[INSTALLATION](https://www.vagrantup.com/docs/installation/)に記載されている内容を意訳に近い形で日本語化したものである。
誤訳が含まれている可能性が十分にあることを踏まえて、参考いただきたい。

# Vagrantのインストール

Vagrantのインストールは非常に簡単である。[Vagrantダウンロードページ](https://www.vagrantup.com/downloads.html)の先頭に戻って、プラットフォームにあったインストーラ、または、パッケージを取得し、オペレーティング・システムの標準的な手順に沿ってパッケージをインストールする。

インストーラは自動的にターミナル内で得られるシステム・パスにvagrantを追加する。もし、それが見つからなかった場合、一旦ログアウトして再度ログインしてみること（これはWindowsで時折必要である）。

> gemでのインストールについて探している？Vagrant 1.0.xではRubyGemsとしてのインストール・オプションがあった。しかし、これはもはやサポートされていない。RubyGemsによってインストールされた古いバージョンのVagrantがある場合、新しいバージョンのVagrantをインストールする前に、それをアンインストールすること。

> システム・パッケージ・マネージャには留意が必要である。いくつかのオペレーティング・システムは、それらの上流のパッケージ・レポジトリにvagrantを含んでいる。この方法ではVagrantをインストールしないこと。通常、これらのパッケージは依存関係を消失しているか、古いバージョンのVagrantを含んでいる。システムのパッケージ・マネージャでインストールする場合、問題にあいやすい。ダウンロードページ上の公式インストーラを使用して欲しい。

# 後方互換性

## 1.0.X 向け

Vagrant 1.1以上は、プラグインを使用していない有効なVagrant1.0.xのVagrantfileに対して完全なる後方互換性を提供する。Vagrant 1.1をインストールした後、1.0.x環境は何の修正もなく動くことができ、既存の稼働しているマシンも引き続き以前の通り管理できる。

この互換性レイヤはVagrant 2.0を含むそのバージョンまで維持されるだろう。それ以降も存在するかもしれないが、Vagrantの互換性保証はあくまでも2つのバージョンに対してのみである。Vagrantのメジャー・リリースを見れば、それが開発からリリースまで年単位でかかるのがわかるだろう。つまり、バージョン1.0.xのVagrantfileに固執してもしばらくは問題ないだろう。

もし、何らかのVagrant 1.0.x のプラグインを使用するなら、アップグレードをする前に、Vagrantfileからこれらプラグインを参照している部分を削除する必要がある。
Vagrant 1.1以上では、非互換性が発生するようなバージョン間で、同じようなことが起こらないように新しいプラグインフォーマットを取り入れている。

## 1.X 向け

1.x 間での後方互換性は保証されない。また、Vagrantfileの記法の安定性は2.0の最後まで保証されない。1.x におけるいずれの後方非互換性についても文書に明記される。

これはVagnrat 0.xでの扱われかたに酷似している。Vagrant 0.x は、実際には全開発サイクルの間に多少の後方非互換性だけを取り入れたが、後方非互換性の可能性は人々にとってはとくに驚きを与えるものではなかった。

Vagrant 2.0 の最終版は後方互換性を維持した安定したVagrantfileフォーマットを持つだろう。同様に1.0は安定だと考えられる。

# Vagrantのアップグレード

Vagrant 1.0.xからのアップデートをする場合、それについて記載された[このページ](https://www.vagrantup.com/docs/installation/upgrading-from-1-0.html)を読むこと。ここでは、1.x シリーズにおける一般的なVagrantのアップグレードを対象とする。

1.x シリーズにおけるVagrantのアップグレードは非常に素直である。

1. 新しいパッケージを[ダウンロード](https://www.vagrantup.com/downloads.html)する
2. 既存のパッケージに上書きインストールする

インストーラは古いファイルを上書きまたは削除する。アップグレード処理が稼働している間、Vagrantのプロセスがない状態であることを推奨する。

Vagrantfileは2.0の最終版までは、新しいVagrantfileの記法が安定していることを保証しない。そのため、1.0.xで作られたVagrantfileが稼動しつづけても、2.0の最終版までは新しいVagrantfileにおいて後方非互換性の変更が発生することもありえることに注意すること。

> アップグレードのトラブルが発生した？もしアップグレード中にトラブルあが発生した場合、その問題を報告して欲しい。アップグレードは、スムーズな処理であるべきと考えているため、そうでないならばヲレを我々はバグと考える。

# Vagrant 1.0.X からのアップグレード

1.0.x から 1.x へのアップグレード手順は非常に素直である。Vagrantは、Vagrant 1.0.x とは[後方互換性](https://www.vagrantup.com/docs/installation/backwards-compatibility.html)を持つので、単純に、最新パッケージをダウンロードし、オペレーティング・システムの標準的な手順を使ってインストールすることで、Vagrantを既存のインストールを上書く形で再インストールできる

[後方互換性](https://www.vagrantup.com/docs/installation/backwards-compatibility.html) についてのページが示すとおり、**Vagrant 1.0.x のプラグインはVagrant 1.1以上では動作しない**. これらのプラグインの多くは、新しいバージョンのVagrantで動作するようにアップデートされたので、こられがアップデートされたか確認することができる。もし、そうでない場合、アップデートの前にそのプラグインを削除する必要がある。

アップデートの前にすべてのプラグインを削除することを推奨する。そして、ゆっくりとプラグインを入れなおすこと。これは、よりスムーズなアップグレード手順のための一般的な手法である。

> **もしRubyGemsでインストールされたVagrantのバージョンである場合**、新しいバージョンのパッケージをインストールする前に、古いバージョンをアンインストールする必要がある。Rubygemsでのインストールはもはやサポートされていない。

# Vagrantのアンインストール

Vagrantのアンインストール方法は簡単で非常に単純である。Vagrantのバイナリ、ユーザデータのいずれか、または、双方をアンインストールできる。以降ではすべてのプラットフォーム上でのアンインストールの方法を示す。

## Vagrantプログラムの削除

Vagrantのプログラムの削除はVagrantのバイナリとその依存関係にあるものをマシンんから削除する。プログラムのアンインストールのあと、いつでも標準的な方法を使用して[再インストール](https://www.vagrantup.com/docs/installation/) できる。

**Windows** では

> コントロールパネルのプログラムの追加と削除を使用してアンインストールする。

**Mac OS X** では

```bash
rm -rf /Applications/Vagrant
rm -f /usr/bin/vagrant
sudo pkgutil --forget com.vagrant.vagrant
```

**Linux**では

```bash
rm -rf /opt/vagrant
rm -f /usr/bin/vagrant
```

## ユーザデータの削除

ユーザデータを削除するのは、すべての[Box](https://www.vagrantup.com/docs/boxes.html)、[プラグイン](https://www.vagrantup.com/docs/plugins/)、ライセンスファイル、そして、Vagrantによって使用されていたいかなる保存された状態をも削除することを示す。ユーザデータを効果的に削除することは、Vagrantに新たにインストールするかのように思わせることができる。

すべてのプラットフォームにおいて、`~/.vagrant.d`ディレクトリを削除することは、つまり、ユーザデータを削除することである。デバッグ時、Vagrantサポートチームはこのディレクトリを削除するかを尋ねるかもしれない。このディレクトリを削除する前に、バックアップをとっておこう。

Vagrantを稼働すると、稼働するために必要なデータは自動的に再生成される。そのため、いつでもユーザデータを削除しても安全である。

# 関連記事

* 前の記事：[【Vagrantドキュメント意訳】02.なぜVagrantか？](http://qiita.com/ringo0321/items/8c60e13cca90924821eb)
* 次の記事：[【Vagrantドキュメント意訳】04.入門](http://qiita.com/ringo0321/items/07df872d6c99b961be9b)