Vagrant: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
Add an example |
→Example: fix markup |
||
Line 3: | Line 3: | ||
== Example == |
== Example == |
||
< |
<pre> |
||
# -*- mode: ruby -*- |
# -*- mode: ruby -*- |
||
# vi: set ft=ruby : |
# vi: set ft=ruby : |
||
Line 41: | Line 41: | ||
SHELL |
SHELL |
||
end |
end |
||
</ |
</pre> |
||
This example Vagrantfile will download a Ubuntu 32bit container and install a i686-elf-gcc cross compiler. It will also download several other tools usefull for operating system development. |
This example Vagrantfile will download a Ubuntu 32bit container and install a i686-elf-gcc cross compiler. It will also download several other tools usefull for operating system development. |
Revision as of 12:13, 13 November 2015
Vagrant puts standard operating system installs into a container. Vagrant integrates with either VMWare or VirtualBox. Then when a container is downloaded and run for the first time vagrant will perform actions specified in your Vagrantfile. In this way development environments can be easily shared. Once the virtual machine created from the container is started with Vagrant. Vagrant will automatically start an ssh session. The folder in which you start Vagrant has to contain a Vagrantfile. This folder will also be shared with the virtual machine.
Example
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty32" config.vm.provision "shell", inline: <<-SHELL sudo apt-get update sudo apt-get install -y libgmp3-dev libmpfr-dev libisl-dev libcloog-isl-dev libmpc-dev texinfo make bison flex gcc g++ nasm build-essential grub qemu zip xorriso sudo export PREFIX="/opt/cross" sudo export TARGET=i686-elf sudo export PATH="$PREFIX/bin:$PATH" sudo mkdir /tmp/ sudo mkdir /tmp/build sudo cd /tmp/build sudo wget -O binutils.tar.gz http://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.gz sudo tar -xf binutils.tar.gz sudo cd binutils-2.25 sudo mkdir build-binutils sudo cd build-binutils sudo ../configure --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror sudo make sudo make install sudo cd ../.. sudo rm -r binutils-2.25 sudo wget -O gcc.tar.gz http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz sudo tar -xf gcc.tar.gz sudo cd gcc-4.9.2 sudo mkdir build-gcc sudo cd build-gcc sudo ../configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers sudo make all-gcc sudo make all-target-libgcc sudo make install-gcc sudo make install-target-libgcc sudo rm -rf /tmp/build SHELL end
This example Vagrantfile will download a Ubuntu 32bit container and install a i686-elf-gcc cross compiler. It will also download several other tools usefull for operating system development.