» Installing Vagrant from Source
Installing Vagrant from source is an advanced topic and is only recommendedwhen using the official installer is not an option. This page details thesteps and prerequisites for installing Vagrant from source.
» Install Ruby
You must have a modern Ruby (>= 2.2) in order to develop and build Vagrant. Thespecific Ruby version is documented in the Vagrant's gemspec
. Please refer tothe vagrant.gemspec
in the repository on GitHub, as it will contain the mostup-to-date requirement. This guide will not discuss how to install and manage Ruby.However, beware of the following pitfalls:
- Do NOT use the system Ruby - use a Ruby version manager like rvm or chruby
- Vagrant plugins are configured based on current environment. If plugins are installedusing Vagrant from source, they will not work from the package based Vagrant installation.
» Clone Vagrant
Clone Vagrant's repository from GitHub into the directory where you keep code on your machine:
$ git clone https://github.com/hashicorp/vagrant.git
Next, cd
into that path. All commands will be run from this path:
$ cd /path/to/your/vagrant/clone
Run the bundle
command with a required version* to install the requirements:
$ bundle install
You can now run Vagrant by running bundle exec vagrant
from inside thatdirectory.
» Use Locally
In order to use your locally-installed version of Vagrant in other projects, you will need to create a binstub and add it to your path.
First, run the following command from the Vagrant repo:
$ bundle --binstubs exec
This will generate files in exec/
, including vagrant
. You can now specifythe full path to the exec/vagrant
anywhere on your operating system:
$ /path/to/vagrant/exec/vagrant init -m hashicorp/precise64
Note that you will receive warnings that running Vagrant like this is notsupported. It's true. It's not. You should listen to those warnings.
If you do not want to specify the full path to Vagrant (i.e. you just want torun vagrant
), you can create a symbolic link to your exec:
$ ln -sf /path/to/vagrant/exec/vagrant /usr/local/bin/vagrant
When you want to switch back to the official Vagrant version, simplyremove the symlink.