aeneas vagrant

Trying to get aeneas-vagrant in VirtualBox on Windows 7 to run has been a bit of a trial-and-error nightmare. Even though many tools in this toolchain are open source and cross platform (supposedly), Window’s idiosyncrasies and strange incompatibilities occurred at multiple points.

Below are the instructions of how I got this to work on an AMD processor (certain issues encountered along the way may be due to an AMD bug!) running Windows 7 Enterprise 64 bit (yes, lets just be super explicit, because 32bit and 64bit mattered in the case of getting Cygwin to work with everything else!)

  1. Install Vagrant (legacy build 1.5.4)
  2. Replace curl.exe in c:\HashiCorp\Vagrant\embedded\bin with this version of curl
  3. Install Cygwin (latest 32bit build), make sure to install ssh and rsync packages.
  4. Git download aeneas-vagrant as per the project readme
  5. (edit Vagrantfile included with aeneas-vagrant directory and add ‘config.vm.boot_timeout = 3000’. This was necessary for my aging AMD processor to not timeout).
  6. Open Cygwin, navigate to aeneas-vagrant directory, input ‘vagrant up’.

Vagrant will do a whole host of things, including downloading a distro debian/jessie64, setup logins and ssh private keys, rsync some folders, bring up the virtual machine with debian/jessie64 into, and then do a whole heap of downloads and setup within debian (colour should be green by this stage). But this will end in an error in debian: something about lxml failing because gcc can’t find a library -lz

  1. Input ‘vagrant ssh’ to log into debian.
  2. Once in debian, input ‘sudo apt-get update’ (this’ll take a while)
  3. Input ‘sudo apt-cache search zlib’ (this’ll bring up a whole heap of results)
  4. Input ‘sudo apt-get install <results-that-looks-the-best>’ (I picked ‘lib32z1’ & ‘lib32z1-dev’ for the <results>)
  5. Input ‘sudo pip install aeneas –upgrade’

Voila! aseneas-vagrant should be now setup and working. Try the instruction of running aeneas as per the project readme, it should finish executing.

However, the shared drive between VirtualBox and your Windows PC will not work just yet. This means you can’t access the output of the aeneas process (which is in VirtualBox) from your PC. And unfortunately debian can’t mount VirtualBox drives (type vboxsf) without some more configuration.

  1. Insert ‘config.vm.synced_folder “./data”, “/vagrant_data”‘ into the Vagrantfile included with aeneas-vagrant directory. This links ‘data’ directory on your Windows PC to /vagrant_data in debian.
  2. Create ‘data’ folder in the aeneas-vagrant directory
  3. At aeneas-vagrant directory in Cygwin, input ‘cygdrive/c/HashiCorp/bin/vagrant.exe plugin install vagrant-vbguest’ (using ‘vagrant plugin install vagrant-vbguest’ generates a SSL error; something to do with the vagrant shellscript not using the right executable; so we specify directly the right vagrant.exe).
  4. Input ‘vagrant up’
  5. Input ‘vagrant ssh’ (now in debian)
  6. Input ‘sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions usr/lib/VBoxGuestAdditions’
  7. Input ‘exit’ (back in Cygwin)
  8. Input ‘vagrant reload’

Now everything should work. ‘vagrant ssh’ into debian again and input the command ‘python -m aeneas.tools.execute_job ../../usr/local/lib/python2.7/dist-packages/aeneas/tools/res/job.zip /vagrant_data/’ – this should generate a zip file in /vagrant_data/ and therefore in aeneas-vagrant/data on your Windows PC.

Acknowledgement: couldn’t have troubleshoot this without the contributors in the following forums:

  • https://github.com/mitchellh/vagrant/issues/5016
  • https://github.com/mitchellh/vagrant/issues/4073
  • https://github.com/mitchellh/vagrant/issues/4073
  • https://github.com/mitchellh/vagrant/issues/3341#8
  • https://github.com/mitchellh/vagrant/issues/5091
  • http://stackoverflow.com/questions/9979870/installing-zlib-in-linux-server

Be the first to leave a comment. Don’t be shy.

Join the Discussion

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>