> For the complete documentation index, see [llms.txt](https://computerscienceeducation.gitbook.io/co-lab-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://computerscienceeducation.gitbook.io/co-lab-manual/setup-guides/technical-setup/linux.md).

# Linux

As Linux is essentially the *dream* programming environment, very little setup is needed for the Lab part of this course. Furthermore, with Linux users, we expect that some of the following steps are not necessary as the requirements are likely already satisfied on your system, so you may skip any steps at your discretion.

{% hint style="info" %}
The framework has been tested on **Ubuntu 24.04** and **Arch Linux.** Other Linux distros should work just as well as long as they support up-to-date versions of VS Code, clang, and cmake.
{% endhint %}

***

## Step 1: Install VS Code

Download and install [Visual Studio Code](https://code.visualstudio.com/download) (VS Code) for Linux.

***

## Step 2: Install the Required Packages

To work with the given assignment framework, you will need `clang`, `make`, `cmake` and `git` , along with other system-specific packages needed for address sanitization.

{% tabs %}
{% tab title="Ubuntu & Debian" %}

```bash
sudo apt update && sudo apt install -y cmake clang make llvm libclang-dev
```

{% endtab %}

{% tab title="Arch Linux" %}

```bash
sudo pacman -S clang make cmake git compiler-rt
```

{% endtab %}
{% endtabs %}

***

## Step 3: Set up SSH with GitHub

One of the easiest ways to access your GitHub account (and with that your private repository) is to set up a Secure Shell (SSH) key. Follow the [GitHub SSH Setup Guide](/co-lab-manual/setup-guides/github-ssh-setup.md) for this.
