/
Linux på Windows 10/11

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.

Related content