Reference

All scripts

Every installer, in plain text. Click any of them to read the exact code before you run it — that is the whole point of this page.

ScriptStepRuns onWhat it does
install_ubuntu_wsl.ps1 1 Windows Enables WSL 2 and installs Ubuntu 24.04 LTS
— none — 1.5 Ubuntu Practice page only; these commands come with Ubuntu
install_cmds.sh 2 Ubuntu Core command line tools
install_c.sh 3 Ubuntu clang and lldb — compile and debug
install_py.sh 4 Ubuntu Python 3 — run a program
install_java.sh 5 Ubuntu Temurin JDK — javac, java, jshell
report_completion.sh 5.5 Ubuntu Tests steps 2–5 and reports the result. Installs nothing.
install_more_cmds.sh 6 Ubuntu The wider toolkit — independent of steps 1–5
install_binary.sh 7 Ubuntu Hex, disassembly, valgrind, make — independent of steps 1–5
install_uv.sh 8 Ubuntu uv: packages, projects, Python versions — independent of steps 1–5
install_maven_gradle.sh 9 Ubuntu Maven and Gradle — independent, but needs the JDK from step 5
install_all.sh 2–5 Ubuntu Runs steps 2 to 5 in order. Does not include 6 to 12.
install_py_debug.sh 12 Ubuntu pdb practice files — independent of steps 1–5
install_sanitizers.sh 11 Ubuntu AddressSanitizer runtime — needs clang from step 3
— none — 10 Ubuntu Practice page only; jq is already installed by step 2
common.sh Ubuntu Shared helpers the others load. Not run on its own.

Ways to run them

Straight from here

$ curl -fsSL https://aikaryashala.com/system_setup/scripts/install_c.sh | bash

Download first, read, then run

$ curl -fsSLO https://aikaryashala.com/system_setup/scripts/install_c.sh
$ less install_c.sh
$ bash install_c.sh

From a clone of the repository

$ git clone https://github.com/aikaryashala/system_setup.git
$ cd system_setup/docs/scripts
$ ./install_c.sh

How they behave

Settings you can override

VariableScriptDefaultEffect
PYTHON_VERSIONinstall_uv.sh3.14Which Python uv installs
UV_TOOLSinstall_uv.shruffTools installed with uv tool install
JDK_VERSIONinstall_java.sh25Which Temurin LTS to install
SKIP_MAVEN / SKIP_GRADLEinstall_maven_gradle.shunsetSet to 1 to leave that build tool out
STUDENT_NAME / ROLL_NUMBERreport_completion.shasked forSkip the prompts
DRY_RUNreport_completion.shunsetSet to 1 to check everything but send nothing
STEPSinstall_all.shcmds c py javaWhich steps to run, in order. Also accepts more_cmds, binary, uv, maven_gradle, sanitizers and py_debug.
WSL_DISTROinstall_ubuntu_wsl.ps1Ubuntu-24.04Which distribution to install
SYSTEM_SETUP_BASE_URLallthis siteWhere scripts fetch each other from — point it at a fork

For example, to install Python 3.12 and skip Gradle:

$ curl -fsSL https://aikaryashala.com/system_setup/scripts/install_uv.sh | PYTHON_VERSION=3.12 bash
$ curl -fsSL https://aikaryashala.com/system_setup/scripts/install_java.sh | SKIP_GRADLE=1 bash

Example files

The small programs used on the guide pages, ready to download: