Skip to content

Debian Dev setup on WSL#

Post installation basics#

Packages to install#

’‘’sudo apt install -y zsh htop vim curl yq git texlive-full’‘’

Configurating zsh#

Change default shell to zsh: Install oh my zsh: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Oh my zsh will ask itself to set it to the default for your user

Enable Non‑Free Firmware (optional)#

sudo vi /etc/apt/sources.list

Make sure it includes the line main contrib non-free-firmware.

And update sudo apt update && sudo apt upgrade.

Change mirror (if not done yet)#

sudo apt install netselect-apt sudo netselect-apt stable

Install microcode#

sudo apt install intel-microcode
# or
sudo apt install amd64-microcode 

Enable Firewall (UFW)#

sudo apt install ufw
sudo ufw enable
sudo ufw status

Add SSH keys for Git repos#

ssh-keygen -t ed25519 -C "Comment" -f ~/.ssh/id_ed25519_github
ssh-keygen -t ed25519 -C "Comment" -f ~/.ssh/id_ed25519_bitbucket

Windows SSH agent and add keys#

Start the SSH Agent

eval "$(ssh-agent -s)"

Add both keys:

ssh-add ~/.ssh/id_ed25519_github
ssh-add ~/.ssh/id_ed25519_bitbucket

Check they are loaded: ssh-add -l

Insert keys#

GitHub → Settings → SSH and GPG keys → New SSH key cat ~/.ssh/id_ed25519_github.pub

Bitbucket → Personal settings → SSH keys → Add key cat ~/.ssh/id_ed25519_bitbucket.pub

And change the config file for .ssh/config:

vi ~/.ssh/config

# GitHub
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_github
    IdentitiesOnly yes

# Bitbucket
Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile ~/.ssh/id_ed25519_bitbucket
    IdentitiesOnly yes

Test#

ssh -v -T git@github.com

ssh -v -T git@bitbucket.org

Setup Development Environments#

Dependency hell:

sudo apt install -y \
  build-essential \
  libssl-dev \
  zlib1g-dev \
  libbz2-dev \
  libreadline-dev \
  libsqlite3-dev \
  libffi-dev \
  liblzma-dev \
  tk-dev \
  uuid-dev \
  libgdbm-dev \
  libnsl-dev

Python (pyenv)#

curl -fsSL https://pyenv.run | bash

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc

For Python 3.14 do: pyenv install 4.14

Rust (Rustup)#

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

ADSF#

Install go: sudo apt install -y golang

curl -L -o asdf.tar.gz https://github.com/asdf-vm/asdf/releases/download/v0.18.0/asdf-v0.18.0-linux-amd64.tar.gz
mkdir ~/.asdf
tar -zxf asdf.tar.gz -C ~/.asdf/
rm asdf.tar.gz

And add helper to zsh

echo '[[ -d ~/.asdf ]] && export PATH="$HOME/.asdf/:$PATH"' >> ~/.zshrc