Skip to content

Commit

Permalink
Fixed some serious errors where packages were not installing;
Browse files Browse the repository at this point in the history
Made bootstrap file more robust against package errors;
Added vagrant_test.sh file to do a quick sanity check after installing;
Removed pip upgrade because it upgraded to a broken version of pip
Reverted from pydot2 to pydot becasue pydot2 has some package-dependency errors
Made stdout generated by vagrant up more visually searchable, and greppable
  • Loading branch information
tdvance committed Jul 14, 2018
1 parent 7fb6c59 commit fba7f07
Show file tree
Hide file tree
Showing 2 changed files with 164 additions and 16 deletions.
153 changes: 137 additions & 16 deletions bootstrap.sh
Original file line number Diff line number Diff line change
@@ -1,44 +1,164 @@
#!/usr/bin/env bash

apt-get update
apt-get install -y figlet toilet
########################################################################
# Update package cache and install some banner utilities
########################################################################

sudo apt-get update
sudo apt-get install -y figlet
sudo apt-get install -y toilet

########################################################################
# Install Apache
########################################################################

toilet -f standard -k Installing Apache
apt-get install -y apache2
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# apt-get install -y apache2\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y apache2


########################################################################
# Install Build Tools
########################################################################


toilet -f standard -k Installing Build Tools
apt-get -y install build-essential gfortran gcc-multilib g++-multilib libffi-dev libffi6 libffi6-dbg python-crypto python-mox3 python-pil python-ply libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libgdbm-dev dpkg-dev quilt autotools-dev libreadline-dev libtinfo-dev libncursesw5-dev tk-dev blt-dev libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libsqlite3-dev libgpm2 mime-support netbase net-tools bzip2 p7zip unrar-free npm
for x in build-essential gfortran gcc-multilib g++-multilib libffi-dev libffi6 libffi6-dbg python-crypto python-mox3 python-pil python-ply libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libgdbm-dev dpkg-dev quilt autotools-dev libreadline-dev libtinfo-dev libncursesw5-dev tk-dev blt-dev libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libsqlite3-dev libgpm2 mime-support netbase net-tools bzip2 p7zip unrar-free npm; do
echo -e '\e[32m########################################################################\e[0m'
echo -e "\e[32m# sudo apt-get -y install $x\e[0m"
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get -y install $x
done


########################################################################
# Install R and R Studio
########################################################################


toilet -f standard -k Installing R and R Studio
apt-get install -y r-base r-base-dev
apt-get install -y gdebi-core
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo apt-get -y install r-base\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y r-base
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo apt-get -y install r-base-dev\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y r-base-dev
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo apt-get -y install gdebi-core\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y gdebi-core
pushd /tmp
wget https://download2.rstudio.org/rstudio-server-1.1.453-amd64.deb
yes|gdebi rstudio-server-1.1.453-amd64.deb
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# yes|gdebi rstudio-server-1.1.453-amd64.deb\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo yes|gdebi rstudio-server-1.1.453-amd64.deb
popd

########################################################################
# Install Java
########################################################################


toilet -f standard -k Installing Java
apt-get install -y openjdk-11-doc openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless
for x in openjdk-11-doc openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless; do
echo -e '\e[32m########################################################################\e[0m'
echo -e "\e[32m# sudo apt-get -y install $x\e[0m"
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y $x
done

########################################################################
# Install Python2 and Python3
########################################################################


toilet -f standard -k Installing Python
apt-get install -y python3-pip python3-all python3-all-dev python-all python-all-dev python-pip ipython ipython-notebook
for x in python3-pip python3-all python3-all-dev python-all python-all-dev python-pip ipython ipython-notebook python3-tk; do
echo -e '\e[32m########################################################################\e[0m'
echo -e "\e[32m# sudo apt-get -y install $x\e[0m"
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y $x
done

########################################################################
# Install Octave
########################################################################

toilet -f standard -k Installing Octave
apt-get install -y octave
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo apt-get -y install octave\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y octave


########################################################################
# Add Packages to Python3
########################################################################

toilet -f standard -k Adding Packages to Python3
pip3 install --upgrade pip
pip3 install awscli bigmler csvkit numpy scipy nose skll matplotlib pandas numexpr tables openpyxl xlsxwriter xlrd feedparser beautifulsoup4 plotly statsmodels dataset pymongo nltk networkx deap pydot2 rpy2 jug nose pandas matplotlib seaborn sklearn
#sudo pip3 install --upgrade pip #Latest pip is broken, so comment out the upgrade

for x in awscli bigmler csvkit numpy scipy skll numexpr tables openpyxl xlsxwriter xlrd feedparser beautifulsoup4 plotly statsmodels dataset pymongo nltk networkx deap pydot rpy2 jug nose pandas matplotlib seaborn sklearn; do
echo -e '\e[32m########################################################################\e[0m'
echo -e "\e[32m# sudo pip3 install $x\e[0m"
echo -e '\e[32m########################################################################\e[0m'
sudo pip3 install $x
done

sudo pip3 install pandas

########################################################################
# Install Jupyter
########################################################################

toilet -f standard -k Installing Jupyter
apt-get install -y jupyter-core jupyter-notebook
pip3 install jupyter-core jupyter-notebook
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo apt-get -y install jupyter-core\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y jupyter-core
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo apt-get -y install jupyter-notebook\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo apt-get install -y jupyter-notebook


########################################################################
# Install Kaggle
########################################################################

toilet -f standard -k Installing Kaggle
pip3 install kaggle
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo pip3 install kaggle\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo pip3 install kaggle

########################################################################
# Install Miscellaneous Tools
########################################################################

toilet -f standard -k Installing Miscellaneous Tools
npm install -g cowsay xml2json-command
echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# sudo npm install -g cowsay xml2json-command\e[0m'
echo -e '\e[32m########################################################################\e[0m'
sudo npm install -g cowsay xml2json-command

########################################################################
# Modify .bashrc
########################################################################


toilet -f standard -k Updating .bashrc
echo -e 'PATH=${PATH}:.' >> /home/vagrant/.bashrc
echo -e "alias ls='ls -AF --color=auto'" >> /home/vagrant/.bashrc

########################################################################
# Display some HOWTOs and finish
########################################################################

toilet -f standard -k Finished

Expand All @@ -59,5 +179,6 @@ tail -n +1 /vagrant/howtos/*

echo
echo
echo Now run /vagrant/vagrant_test.sh on the guest command line for a quick sanity-test of the installation.
echo Scroll up a little for some howtos

27 changes: 27 additions & 0 deletions vagrant_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash

echo -e '\e[32m########################################################################\e[0m'
echo -e '\e[32m# Testing Vagrant installation\e[0m'
echo -e '\e[32m########################################################################\e[0m'

which python3 >/dev/null || echo "error: Python3 was not installed; try manually typing 'sudo apt-get install -y python3-pip python3-all python3-all-dev python-all python-all-dev python-pip ipython' on the guest command line."

for x in awscli bigmler csvkit numpy scipy skll numexpr tables openpyxl xlsxwriter xlrd feedparser plotly statsmodels dataset pymongo nltk networkx deap rpy2 jug nose pandas matplotlib seaborn sklearn; do
python3 -c "import $x" || echo "error: Python3 $x package was not installed; try manually typing \'sudo pip3 install $x\' on the guest command line."
done

python3 -c "from bs4 import BeautifulSoup" || echo "error: Python3 BeautifulSoup package was not installed; try manually typing \'sudo pip3 install beautifulsoup4\' on the guest command line."

python3 -c "import pydot" || echo "error: Python3 pydot package was not installed; try manually typing \'sudo pip3 install pydot\' on the guest command line."

which kaggle >/dev/null|| echo "error: kaggle was not installed; try manually typing 'sudo pip3 install kaggle' on the guest command line."

which R >/dev/null|| echo "error: R was not installed; try manually typing 'sudo apt-get install -y r-base r-base-dev' on the guest command line."

which octave >/dev/null|| echo "error: Octave was not installed; try manually typing 'sudo apt-get install -y octave' on the guest command line."

which java >/dev/null || echo "error: Java was not installed; try manually typing 'sudo apt-get install -y openjdk-11-doc openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless' on the guest command line."

which jupyter-notebook >/dev/null|| echo "error: jupyter-notebook was not installed; try manually typing 'sudo apt-get install -y jupyter-core jupyter-notebook' on the guest command line."

echo "no news is good news---if there are no errors, the installation appears to be OK."

0 comments on commit fba7f07

Please sign in to comment.