Vagrant: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(→‎Example: fix markup)
m (Bot: Replace deprecated source tag with syntaxhighlight)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Stub}}
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.
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 ==
== Example ==
<syntaxhighlight lang="ruby">
<pre>
# -*- mode: ruby -*-
# -*- mode: ruby -*-
# vi: set ft=ruby :
# vi: set ft=ruby :
Line 41: Line 41:
SHELL
SHELL
end
end
</syntaxhighlight>
</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 14.04 32-bit container and install a i686-elf-gcc cross compiler. It will also download several other tools usefull for operating system development.

[[Category:OS Development]]

Latest revision as of 05:49, 9 June 2024

This page is a stub.
You can help the wiki by accurately adding more contents to it.

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 14.04 32-bit container and install a i686-elf-gcc cross compiler. It will also download several other tools usefull for operating system development.