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