===== 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 [[https://ubuntu.com/tutorials/how-to-run-ubuntu-desktop-on-a-virtual-machine-using-virtualbox|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 [[vm:clean-vm.sh|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 [[vm:clean-vm.sh|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 [[https://github.com/uchicago-cs/pintos/blob/9ba4227e7442acdb011bf4c5609222059adca121/uchicago/uchicago-vm-setup.sh|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.