Table of Contents
VM Changelog
202122.3
Date: May 12, 2022
Fixed APT sources (did not include the focal-updates sources):
deb http://us.archive.ubuntu.com/ubuntu/ focal main universe restricted multiverse deb http://security.ubuntu.com/ubuntu/ focal-security main restricted multiverse universe deb http://us.archive.ubuntu.com/ubuntu/ focal-updates main restricted multiverse universe deb http://us.archive.ubuntu.com/ubuntu/ focal-backports main restricted multiverse universe
Updated software:
sudo apt update sudo apt upgrade sudo apt autoremove
Installed latest VirtualBox Guest Additions (VirtualBox "Devices" menu → Insert Guest Additions CD image)
202122.2
Date: January 29, 2022
Updated existing software:
sudo apt update sudo apt upgrade sudo apt autoremove
Installed mininet:
cd /tmp wget https://github.com/mininet/mininet/archive/refs/tags/2.3.0.tar.gz tar xvzf 2.3.0.tar.gz mv mininet-2.3.0/ mininet sudo PYTHON=python3 mininet/util/install.sh -nfv
Installed Ryu:
sudo apt install libssl-dev libxml2-dev libxslt1-dev cd /opt sudo git clone https://github.com/faucetsdn/ryu.git cd ryu sudo pip3 install .
202122.1
Date: January 7, 2022
This is a new Ubuntu 20.04 image built from scratch. The initial image was created following this Ubuntu tutorial. After that, we performed the setup described below.
Updated sources and packages:
sudo apt update sudo apt upgrade
Disable unattended upgrades:
sudo apt-get remove unattended-upgrades
Additionally, manually disabled automatic check for upgrades (prevents Ubuntu from asking students if they want to upgrade any software)
Installed VirtualBox Guest Additions (VirtualBox "Devices" menu → Insert Guest Additions CD image)
Installed most of the software that was present in the 16.04 version of the VM image:
sudo apt install -y git mc openssh-server texinfo qemu texlive graphviz libgraphviz-dev libffi7 libffi-dev traceroute cmake libyaml-0-2 libyaml-dev libtool libncurses5-dev libncursesw5-dev clang clang-format protobuf-compiler protobuf-c-compiler libprotoc-dev libprotobuf-c-dev python3-pip python3-dev sudo -H pip3 install pytest-json pytest-html pandas numpy scipy matplotlib jupyter ipython emoji tabulate twitter cairocffi pygraphviz networkx pydot_ng pydot sklearn pylint setuptools pip click pyyaml pycryptodome
Installed Visual Studio Code:
sudo snap install code --classic
The Criterion test framework doesn't have an 20.04 package, but the 18.04 one appears to work fine:
wget http://ppa.launchpad.net/snaipewastaken/ppa/ubuntu/pool/main/c/criterion/criterion_2.3.2-6-ubuntu1~bionic1_amd64.deb wget http://ppa.launchpad.net/snaipewastaken/ppa/ubuntu/pool/main/c/criterion/criterion-dev_2.3.2-6-ubuntu1~bionic1_amd64.deb sudo dpkg -i criterion_2.3.2-6-ubuntu1~bionic1_amd64.deb sudo dpkg -i criterion-dev_2.3.2-6-ubuntu1~bionic1_amd64.deb
Added the clean-vm.sh script.
201920.3
Date: April 16, 2020
Updated existing software:
sudo apt update sudo apt dist-upgrade -u sudo apt autoremove sudo snap refresh update-cs-software
Installed Visual Studio Code:
sudo snap install code --classic
Installed latest version of CMake:
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main' sudo apt-get update sudo apt-get install -y cmake
Installed missing libraries needed by CMSC 22000:
sudo apt-get install -y libyaml-0-2 libyaml-dev libncurses5-dev libncursesw5-dev
Updated VM cleaning script (the latest version of this file can now be found on the wiki)
201920.2
Date: September 24, 2019
Updated pyyaml and installed pycryptodome:
sudo -H pip3 install pyyaml pycryptodome --upgrade
Removed leftover hello.py
file in the student
home directory.
201920.1
Date: September 24, 2019
Updated click and the CS setup script:
sudo -H pip3 install click uchicago_cs_setup_script --upgrade
201920.1-rc1
Date: September 23, 2019
Updated existing software:
sudo apt update sudo apt dist-upgrade -u sudo apt autoremove
Updated VirtualBox Guest Additions to version 5.2.18 (VirtualBox "Devices" menu → Insert Guest Additions CD image)
Updated pip
and setuptools
:
sudo -H pip3 install setuptools pip --upgrade
Updated chisubmit:
sudo -H pip3 install chisubmit --upgrade
Updated software used in CMSC 12100:
sudo -H pip3 install --upgrade pandas numpy scipy matplotlib jupyter ipython emoji tabulate twitter cairocffi pygraphviz networkx pydot_ng pydot sklearn pylint
201819.2
Date: January 5, 2019
Remove imagemagick package, which usually causes issues in CS 121 (because of its import
command):
sudo apt remove imagemagick
Install CMake and traceroute:
sudo apt install cmake traceroute
Install clang:
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" sudo apt update sudo apt install clang-7 clang-format-7 clang-tidy-7
201819.1
Date: September 26, 2018
Upgrade the UChicago CS Setup Script:
sudo -H pip3 install uchicago-cs-setup-script --upgrade
Removed user-local Python packages and executables that seemed to have been installed a long time ago, and which would likely conflict with system-wide packages.
rm -rf .local/lib/python3.5/ rm -rf .local/bin/
201819.1-rc2
Date: September 24, 2018
Removed Sublime Text 2:
rm -rf /home/student/Software/ rm -rf /home/student/bin/ rm -rf /home/student/.config/sublime-text-2 # Removed subl alias from .bashrc_cs
Added Sublime Text 3:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - sudo apt-get install apt-transport-https echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list sudo apt-get update sudo apt-get install sublime-text # Add 'rm -rf ~student/.config/sublime-text-3' to /root/clean-vm.sh
Added PyCharm:
sudo snap install pycharm-community --classic
Installed pylint:
sudo pip3 install pylint
Added the following to clean-vm.sh
to clear caches and reduce VM image size:
echo "Clearing caches..." apt clean rm -rf ~student/.cache rm -rf /root/.cache
201819.1-rc1
Date: September 19, 2018
Added xenial-updates package sources:
deb http://us.archive.ubuntu.com/ubuntu xenial-updates main restricted deb http://us.archive.ubuntu.com/ubuntu xenial-updates universe deb http://us.archive.ubuntu.com/ubuntu xenial-updates multiverse
Updated existing software:
sudo apt update sudo apt dist-upgrade -u sudo apt autoremove
Updated VirtualBox Guest Additions to version 5.2.18 (VirtualBox "Devices" menu → Insert Guest Additions CS)
Updated pip
and setuptools
:
sudo -H pip2 install setuptools pip --upgrade sudo -H pip3 install setuptools pip --upgrade
Updated chisubmit to 2.0:
sudo -H pip2 uninstall chisubmit sudo -H pip3 install chisubmit
Updated /usr/local/bin/update-cs-software
to update chisubmit with pip3 instead of pip2
Updated software used in CMSC 12100:
sudo -H pip3 install --upgrade pandas numpy matplotlib jupyter sudo -H pip3 install --upgrade emoji tabulate twitter
Added packages needed by CMSC 12100:
sudo apt install graphviz graphviz-dev libffi6 libffi-dev sudo -H pip3 install cairocffi pygraphviz networkx pydot_ng pydot sklearn
201718.3
Date: January 2, 2018
Updated existing software:
sudo apt update sudo apt dist-upgrade -u sudo apt autoremove
Added Python packages needed by CMSC 23300:
sudo -H pip3 install pytest-json pytest-html sudo -H pip2 install ipaddress --upgrade
Added packages needed by CMSC 23300:
sudo apt install libtool protobuf-compiler protobuf-c-compiler libprotoc-dev mininet sudo add-apt-repository ppa:snaipewastaken/ppa sudo apt-get update sudo apt-get install criterion-dev
201718.2
Date: September 20, 2017
Updated the Guest OS tools (select Devices → "Install Guest Additions CD image"; run)
Disabled automatic updates (Settings → Software & Updates → Updates; unchecked "updates from…" boxes; set "Automatically check for updates" to Never; set "Notify me of a new Ubuntu version" to Never)
Added multiverse and universe sources to apt
201718.1
Date: September 18, 2017
No changes. Version update only to indicate this is no longer a release candidate.
201718.1-rc3
Date: August 31, 2017
Updated existing software:
sudo apt-get update sudo apt-get dist-upgrade -u
Added Python packages needed by CMSC 12100:
sudo -H pip3 install emoji pandas tabulate twitter
Added alias to ~student/.bashrc_cs
alias subl=sublime_text
Modified /root/clean-vm.sh
to remove the Sublime Text history:
rm ~student/.config/sublime-text-2/Settings/Session.sublime_session
201718.1-rc2
Date: August 25, 2017
Changed default Java version to 1.8.0_131 (instead of Java 9)
Updated to chisubmit 1.3.0 (ran update-cs-software
)
Installed additional packages:
apt-get install mono-runtime mono-mcs php7.0-cli
Installed Pintos following these instructions.
Modified /root/clean-vm.sh
to do additional cleanup, and to add mit.cs.uchicago.edu to trusted SSH hosts:
rm -rf /tmp/* rm -rf ~student/.vim rm -rf ~student/.emacs.d rm -rf ~student/.gitconfig ssh-keyscan -H mit.cs.uchicago.edu > ~student/.ssh/known_hosts ssh-keyscan -H $(dig +short mit.cs.uchicago.edu) >> ~student/.ssh/known_hosts chown -R student.student ~student/.ssh
201718.1-rc1
Date: August 23, 2017
Changed hostname to "cs-vm" (updated /etc/hostname and /etc/hosts)
Manually updated applications on Ubuntu launcher
Disabled unattended upgrades:
sudo apt-get remove unattended-upgrades
Manually disabled automatic check for upgrades (prevents Ubuntu from asking students if they want to upgrade any software)
Updated existing software:
sudo apt-get update sudo apt-get dist-upgrade -u sudo apt-get autoremove
Added new packages:
sudo apt-get install eclipse eclipse-cdt mc texinfo qemu texlive
Updated pip:
sudo -H pip2 install pip --upgrade sudo -H pip3 install pip --upgrade
Installed chisubmit and uchicagocs-setup-script:
sudo -H pip2 install chisubmit --upgrade sudo -H pip3 install uchicago-cs-setup-script ipython --upgrade
Added .chisubmitconf file in /home/student:
api-url: https://chisubmit-backend.cs.uchicago.edu/api/v1/
Updated certificates:
wget http://crt.usertrust.com/USERTrustRSAAddTrustCA.crt -O - | sudo openssl x509 -inform DER -outform PEM -out /usr/local/share/ca-certificates/USERTrustRSAAddTrustCA.crt wget http://crt.incommon-rsa.org/InCommonRSAServerCA_2.crt -O - | sudo openssl x509 -inform DER -outform PEM -out /usr/local/share/ca-certificates/InCommonRSAServerCA_2.crt sudo update-ca-certificates
Added /usr/local/bin/update-cs-software:
#!/bin/bash sudo -H pip2 install chisubmit --upgrade sudo -H pip3 install uchicago-cs-setup-script --upgrade sudo chmod a+x /usr/local/bin/update-cs-software
Removed root-owned files in /home/student
Added /root/clean-vm.sh to clean VM before producing a golden image:
#!/bin/bash echo "Cleaning logs..." # Stop logging service service rsyslog stop # Clear logs logrotate -f /etc/logrotate.conf rm /var/log/*.gz /var/log/*.1 echo "Cleaning /var/tmp..." rm -rf /var/tmp/* echo "Removing SSH keys..." rm -rf ~student/.ssh rm -rf ~root/.ssh echo "Removing configuration files and histories..." rm -rf ~root/.bash_history rm -rf ~student/.bash_history rm -rf ~student/.mozilla/firefox rm -rf ~student/.ipython rm -rf ~student/.chisubmit
201718.0
This was a base Ubuntu 16.04 image created by Techstaff.