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 --installVelg 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 | shLegg 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å installer det og gi rettigheter med kommandoen:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
winget install --id Starship.Starship -eSe også 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 = trueEditoren Micro
Alternativ til nano, som støtter mus (scrolling, selektering, copy-paste osv). Installer med kommando:
sudo apt install microVisual 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-fullBruk: 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-devNyttige 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.1pipx
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.