Skip to content

Setting Up Programming Languages

TechLit computers use asdf to manage the programming languages you teach, like Python, JavaScript, and Java. Students use them while learning code, the TechLit programming curriculum: reading written instructions and turning them into working programs. asdf keeps every language in its own folder, so two different versions can sit side by side without breaking each other.

You do not need to install asdf itself. The system image already has it, and it is wired into the guest shell. Your job is only to add the languages you want to teach.



If you have a USB drive with asdf.tar.gz on it, use this method. The tarball already contains the plugins and language versions used in class, so nothing is downloaded from the internet.

  1. Copy the Tarball from the USB

    # The USB drive is mounted at /mnt (see Before You Begin)
    cp /mnt/asdf.tar.gz /srv/guest/
  2. Unpack It

    # This creates the /srv/guest/asdf folder
    tar -xzf /srv/guest/asdf.tar.gz -C /srv/guest/
  3. Check the Languages

    # Make the installed languages visible in your current terminal
    export PATH="/srv/guest/asdf/shims:$PATH"
    
    # Show every language and version asdf is managing
    asdf current

    Run python --version (or whichever language you added) to check it works.


Use this method to install one language on one computer, directly from the internet.

  1. Add the Plugin

    Each language has a plugin. Add the one you need:

    # Example for Python
    asdf plugin add python
  2. Install a Version

    # See every version available for Python
    asdf list all python
    
    # Install the one you want (or "latest")
    asdf install python 3.12.3
  3. Set the Default Version

    Run this from your home folder so the version applies everywhere for the guest user:

    cd ~
    asdf set python 3.12.3
  4. Make Sure the Shims Are on Your PATH

    The system image already does this for the guest shell, but if a command is still “not found”, add the shims folder to your PATH:

    # For the current terminal session
    export PATH="/srv/guest/asdf/shims:$PATH"

Use this method to set up many computers at once. You prepare the languages once, then distribute them to the fleet. There are 2 ways to do that.

If one computer on the network is already set up, the others can copy from it directly. Run this on each computer that still needs the languages:

# Replace 'tl-1234' with the hostname of a computer that is already set up
scp -r tl-1234.local:/srv/guest/asdf /srv/guest/

Prepare one tarball on a computer that is already set up, then share it on USB drives the same way as Method 1.

# On a computer that is already set up
tar -czf asdf-2026-09-04.tar.gz -C /srv/guest asdf

Name the tarball with the date you built it (asdf-2026-09-04.tar.gz), so it is always obvious which build is the newest. Keep a latest.tar.gz symlink pointing at the current build, so anything that copies “latest” always gets the right one:

ln -sfn asdf-2026-09-04.tar.gz latest.tar.gz

  • Read the plugin README first. Every language plugin needs its own build dependencies (compilers, headers, and so on). The plugin’s README lists exactly what is required. Check it before installing, especially when an install fails halfway through.
  • Missing system packages? The TechLit desktop is Artix Linux. Install missing tools and libraries from the AUR with yay.
  • Still stuck? Ask for help. Send the exact command you ran and the full error output. A screenshot of the last 20 lines is helpful.

The languages above are a starting point, not the limit. asdf supports hundreds of tools and languages, so if you want to teach something new (Rust, Go, Ruby, or anything else), you can add it yourself.

# Browse everything asdf can install
asdf plugin list all

Once you find your language in the list, follow Method 2 to install it. If you add a language that works well in class, tell the TechLit team so it can be added to the system image for everyone.