This page will help you get started setting up an environment on your personal computer to let you do most of the labs and MPs without remote connecting to the EWS machines. We highly recommend you attempt programming locally (on your own machine) as the EWS servers have a history of going down, being slow, and/or being overloaded in general. This will also enable you to work on assignments offline.

DISCLAIMER

Our grading runs are done on EWS machines, and we expect you to test your code thoroughly on EWS to ensure compatibility. You will be responsible for any issues arising from insufficient testing; no regrades will be given.

Please come to office hours or post on Piazza if these instructions do not make sense, or do not work.

Virtual Machine

We recently released a course Virtual Machine which comes preinstalled with all of the necessary utilities for developing MP’s and labs. This is the recommended option for Windows users. This is portable to any machines supported by VirtualBox.

Remote Connect

You have two options for remotely working on the EWS Linux cluster:

We recommend connecting to a console session since an excessive amount of FastX sessions tends to become unstable on the EWS cluster or ends up refusing connections.

Working Natively

Linux

You should make sure you have the following packages installed:

After installing the required packages, you should now be able to check out, build, and run assignments as described in their documentation.

Ubuntu 12.04

Unfortunately, there aren’t any widely-available packages for clang and libc++. Here is a guide on building them from source. It will probably take a long while to do so, so it may be beneficial to upgrade to a newer version of Ubuntu. This should get you the other requirements:

sudo apt-get install libpng-dev libsvn-dev gdb valgrind graphviz imagemagick subversion gnuplot

Other Ubuntu (>= 14.04)

This should get you all of the packages you’ll need:

sudo apt-get update && sudo apt-get install clang-3.5 libc++abi-dev libc++-dev libpng-dev libsvn-dev gdb valgrind graphviz imagemagick subversion gnuplot
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.5 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.5 100

If you have a different version of clang installed, you might need to remove it first. Alternatively, if you don’t mind using a different version of clang, you can use the other version instead—just make sure to test your code on EWS. (You should do that anyway.)

Arch

This should get you all of the packages you’ll need:

sudo pacman -Sy clang35 libc++ libc++abi gdb valgrind graphviz imagemagick subversion gnuplot

The default clang package should work as well (it’s currently at 3.7), but make sure to test your code on EWS. (You should do that anyway.)

Mac OS X

If you do not wish to work natively, please follow the guide for installing the Virtual Machine. However, if you cannot use the Virtual Machine, and experience difficulties installing the software listed below, then please come speak with a TA during office hours, a lab section, or by posting on Piazza.

Compiler, Subversion

Run

xcode-select --install

to install the Xcode commandline tools. You should run that command even if you already have the commandline tools installed—running it sets up Apple’s version of clang to look for headers in the “regular” *nix places.

Other requirements

The easiest way to get the required software is by using a package manager. Homebrew and MacPorts are some of the more popular package managers. If you don’t already have one installed, we recommend installing Homebrew.

With Homebrew, run

brew install libpng

With MacPorts, run

sudo port install libpng

Windows

While it is certainly possible to develop under the Cygwin environment (you can Google this if you’re feeling really motivated), using the course Virtual Machine is probably easier.