CS50 distributes its own spin on Fedora but I have Fedora 20 installed and don't want to waste precious download usage.

How can I install the CS50 appliance in my existing Fedora 20 environment?


1 Answer 1


"CS50 appliance" refers to the pre-configured, Fedora-based virtual machine distributed as part of the course materials. The only way to "install the appliance" is by loading the virtual machine in its entirety.

However, you can certainly install some of the individual components of the appliance without installing the entire virtual machine.

The most important tool for taking CS50 is the CS50 Library. There are detailed instructions for installing the CS50 Library in a variety of environments in the CS50 Manual. Here's how you would do it in Fedora:

First become root, as with:

su -

Then install the CS50 Library as follows:

yum -y install gcc
wget http://mirror.cs50.net/library50/c/library50-c-5.zip
unzip library50-c-5.zip
rm -f library50-c-5.zip
cd library50-c-5
gcc -c -ggdb -std=c99 cs50.c -o cs50.o
ar rcs libcs50.a cs50.o
chmod 0644 cs50.h libcs50.a
mkdir -p /usr/local/include
chmod 0755 /usr/local/include
mv -f cs50.h /usr/local/include
mkdir -p /usr/local/lib
chmod 0755 /usr/local/lib
mv -f libcs50.a /usr/local/lib
cd ..
rm -rf library50-c-5

This is the bare minimum requirement for being able to complete most of the problem sets.

However, without additional tools from the appliance, you'll find it more difficult to do many basic things; for example, you wouldn't be able to run check50 without installing it manually from the github source (and installing nodejs, which can be done via yum). You also wouldn't be able to use make exactly as it's used in the problem set specifications without also installing clang and configuring make to use the default arguments described in pset3.

If you need more detailed instructions, much of the advice given in response to the question How to Install the Tools for the Course on Ubuntu is applicable to Fedora as well.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .