From a728ef2bf1e3942dac75bb54409477c546ba3ef8 Mon Sep 17 00:00:00 2001 From: Richard Frank Date: Tue, 28 Jun 2016 08:34:35 -0400 Subject: [PATCH] DEV: Merged updated Vagrantfile with vagrant_init.sh --- Vagrantfile | 80 +++---------------------------------------------- vagrant_init.sh | 29 +++++++++--------- 2 files changed, 19 insertions(+), 90 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index d0c82382..b1f9671f 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,82 +1,10 @@ # -*- mode: ruby -*- # vi: set ft=ruby : -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure(2) do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at - # https://docs.vagrantup.com. - - # Every Vagrant development environment requires a box. You can search for - # boxes at https://atlas.hashicorp.com/search. +Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" - - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. - # config.vm.network "forwarded_port", guest: 80, host: 8080 - - # Create a private network, which allows host-only access to the machine - # using a specific IP. - # config.vm.network "private_network", ip: "192.168.33.10" - - # Create a public network, which generally matched to bridged network. - # Bridged networks make the machine appear as another physical device on - # your network. - # config.vm.network "public_network" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - # config.vm.synced_folder "../data", "/vagrant_data" - - # Provider-specific configuration so you can fine-tune various - # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # Customize the amount of memory on the VM: - vb.memory = "2048" + config.vm.provider :virtualbox do |vb| + vb.customize ["modifyvm", :id, "--memory", 2048, "--cpus", 2] end - # - # View the documentation for the provider you are using for more - # information on available options. - - # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies - # such as FTP and Heroku are also available. See the documentation at - # https://docs.vagrantup.com/v2/push/atlas.html for more information. - # config.push.define "atlas" do |push| - # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" - # end - - # Enable provisioning with a shell script. Additional provisioners such as - # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the - # documentation for more information about their specific syntax and use. - config.vm.provision "shell", inline: <<-SHELL - sudo apt-get install -y python3-pip - sudo apt-get install -y libopenblas-dev liblapack-dev gfortran libfreetype6-dev pkg-config - wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz - tar -xvzf ta-lib-0.4.0-src.tar.gz - cd ta-lib/ - ./configure --prefix=/usr - make - sudo make install - cd - sudo apt-get install -y git - git clone https://github.com/quantopian/zipline - cd ./zipline/ - sudo pip3 install -e .[all] - SHELL + config.vm.provision "shell", path: "vagrant_init.sh" end diff --git a/vagrant_init.sh b/vagrant_init.sh index e92983b2..4f5cf920 100644 --- a/vagrant_init.sh +++ b/vagrant_init.sh @@ -21,17 +21,16 @@ VAGRANT_LOG="/home/vagrant/vagrant.log" echo "Obstructing updates to grub-pc..." apt-mark hold grub-pc 2>&1 >> "$VAGRANT_LOG" -# Run a full apt-get update first. +echo "Adding python apt repo..." +apt-add-repository -y ppa:fkrull/deadsnakes-python2.7 2>&1 >> "$VAGRANT_LOG" echo "Updating apt-get caches..." apt-get -y update 2>&1 >> "$VAGRANT_LOG" -# Install required packages -echo "Installing required packages..." -apt-get -y install python-pip python-dev g++ make libfreetype6-dev libpng-dev libopenblas-dev liblapack-dev gfortran 2>&1 >> "$VAGRANT_LOG" +echo "Installing required system packages..." +apt-get -y install python2.7 python-dev g++ make libfreetype6-dev libpng-dev libopenblas-dev liblapack-dev gfortran pkg-config git 2>&1 >> "$VAGRANT_LOG" -# Add ta-lib -echo "Installing ta-lib integration..." -wget http://switch.dl.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz 2>&1 "$VAGRANT_LOG" +echo "Installing ta-lib..." +wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz --no-verbose -a "$VAGRANT_LOG" tar -xvzf ta-lib-0.4.0-src.tar.gz 2>&1 >> "$VAGRANT_LOG" cd ta-lib/ ./configure --prefix=/usr 2>&1 >> "$VAGRANT_LOG" @@ -39,12 +38,14 @@ make 2>&1 >> "$VAGRANT_LOG" sudo make install 2>&1 >> "$VAGRANT_LOG" cd ../ -# Add Zipline python dependencies -echo "Installing python package dependencies..." +echo "Installing pip and setuptools..." +wget https://bootstrap.pypa.io/get-pip.py 2>&1 >> "$VAGRANT_LOG" +python get-pip.py 2>&1 >> "$VAGRANT_LOG" +echo "Installing zipline python dependencies..." /vagrant/etc/ordered_pip.sh /vagrant/etc/requirements.txt 2>&1 >> "$VAGRANT_LOG" -# Add scipy next (if it's not done now, breaks installing of statsmodels for some reason ??) -echo "Installing scipy..." -pip install scipy==0.12.0 2>&1 >> "$VAGRANT_LOG" -echo "Installing zipline dev python dependencies..." -pip install --exists-action w -r /vagrant/etc/requirements_dev.txt 2>&1 >> "$VAGRANT_LOG" +echo "Installing zipline extra python dependencies..." +pip install -r /vagrant/etc/requirements_dev.txt -r /vagrant/etc/requirements_blaze.txt 2>&1 >> "$VAGRANT_LOG" +echo "Installing zipline package itself..." +find /vagrant/ -type f -name '*.c' -exec rm {} + +pip install -e /vagrant[all] 2>&1 >> "$VAGRANT_LOG" echo "Finished!"