Linux på Windows 10/11
Denne siden beskriver hvordan jeg har satt opp mine Windows PC’er til å bruke Linux (via WSL), samt hvordan jeg har satt opp Linux utviklingsmiljøet der.
WSL
Windows 10: Installer som beskrevet på Install WSL
Windows 11: Installer som beskrevet på: How to install Windows Subsystem for Linux (WSL) on Windows 11 - Pureinfotech Kortversjon: Start kommando-prompt med “Run as Administrator” og:
wsl --install
Velg Ubuntu som Linux-distribusjon.
Windows Terminal
Installeres fra Microsoft Store for Windows 10. I Windows 11 er den installert som standard.
Config
Du kan sette Ubuntu til å være default profil: Åpne settings i Windows Terminal, velg Startup og sett default profile til Ubuntu.
Sette startkatalog til å være Linux hjemmeområde: Åpne settings i Windows Terminal, velg Ubuntu-profil og sett Starting directory til: \\wsl$\Ubuntu\home\<ditt brukernavn>
(eller \\wsl$\Ubuntu-22.04\home\<ditt brukernavn>
hvis Windows Terminal profilen din heter Ubuntu-22.04).
Starship
Starship er et shell prompt som gir deg god informasjon om git repositoryer på kommandolinja. Snap virker ikke out-of-the box på Ubuntu 22.04 på WSL2, så Starship må installeres manuelt:
curl -sS https://starship.rs/install.sh | sh
Legg så til følgende linje sist i ~/.bashrc
:
eval "$(starship init bash)"
I tillegg trenger du en Powerline font for å kunne vise alle symbolene i Windows Terminal. Last ned siste release fra https://github.com/microsoft/cascadia-code/releases, pakk ut fila og installer fontene ttf\CascadiaCodePL.ttf
og ttf\CascadiaMonoPL.ttf
.
Sett opp Windows Terminal til å bruke aktuell font i den aktuelle profilen. I Windows Terminal, velg Settings, den aktuelle profilen (Ubuntu) og Velg Appearance. Da får du opp bildet nedenfor. Velg fonten Cascadia Mono PL
. Det er mulig at du må velge “Show all fonts” eller restarte Windows Terminal for å få den opp.
Hvis du ønsker å bruke Starship også i PowerShell, så følg denne beskrivelsen: Take your Windows PowerShell to the next level by Starship
Config
~/.config/starship.toml
# Don't print a new line at the start of the prompt
add_newline = false
[line_break]
disabled = true
# Only report duration if more than 20 seconds
[cmd_duration]
min_time = 20000
# Disable the package module, hiding it from the prompt completely
[package]
disabled = true
Editoren Micro
Alternativ til nano, som støtter mus (scrolling, selektering, copy-paste osv). Installer med kommando:
sudo apt install micro
Visual Studio Code
Hvis man vil ha noe mer enn en tekstbasert editor så kan Visual Studio Code brukes med filer i WSL2. Installer Windows-versjonen fra https://code.visualstudio.com/download og installer pluginen Remote WSL. Deretter kan man i Linux terminalvinduet skrive code <filnavn>
, og så åpner filen i Visual Studio Code på Windows.
Docker
Det virker ikke å bare installere docker med apt install
siden WSL2 ikke bruker systemd. Det enkleste er å installere Docker Desktop for Windows Windows. Når du starter opp Docker Desktop så blir docker-kommandoen tilgjengelig i WSL2.
Python
Ubuntu 22.04 LTS har python3.10 som standard. Installeres med sudo apt install python3.10-full
hvis den ikke allerede er installert.
I boka Hyper Modern Python Tooling anbefales det ikke bruke pyenv på Ubuntu for å installere og bruke andre Python-versjoner, men heller installere flere python-versjoner fra repository ppa:deadsnakes/ppa
Ubuntu
sudo apt update && sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update
sudo apt install python3.11-full
Bruk: python3.11 <navn på skript>
pyenv (ikke lenger anbefalt på Ubuntu og Windows, kun på Mac)
Python-versjoner bør installeres med pyenv på Linux og Mac, og med pyenv-win på Windows. Det gjør det lett å bytte mellom versjoner, muliggjør testing på flere python-versjoner samtidig osv.
Installer pyenv som beskrivet på pyenv-siden, men bruker du pyenv både på Linux (WSL2) og på Windows så trenger du å endre en linje i foreslått .bashrc
og .profile
. Pyenv-seksjonen skal da se slik ut:
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)""
På Ubuntu installerer du følgende pakker (python byggeavhengigheter) før du installerer python med pyenv:
sudo apt install build-essential libssl-dev zlib1g-dev libgdbm-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
Nyttige pyenv-kommandoer:
pyenv versions -l # Lister alle python-versjoner du kan installere
pyenv versions # Lister alle python-versjoner du har installert
pyenv install 3.11.1 # Installerer python versjon 3.11.1
pipx
pipx brukes for å installere python-verktøy i isolerte miljøer, slik at man ikke “tuller til” standard python installasjon. Anbefales for å installere verktøy som nbstripout, poetry, nox, tox osv.
Installeres ved å følge beskrivelsen på pipx-siden.
poetry
poetry brukes som pakkehåndteringsverktøy for python-pakker. Installeres og oppdateres med pipx som som beskrevet på poetry-siden.