diff --git a/bootstrap.sh b/bootstrap.sh index 0905f2e..e97a59e 100644 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -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 @@ -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 diff --git a/vagrant_test.sh b/vagrant_test.sh new file mode 100644 index 0000000..26a9294 --- /dev/null +++ b/vagrant_test.sh @@ -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."