Ubuntu Suomen keskustelualueet
Muut alueet => Muut käyttöjärjestelmät ja Linux-jakelut => Aiheen aloitti: AimoE - 31.05.26 - klo:08.43
-
Voin päivittää WSL:n oletusdistron PowerShell-komennoilla:
if ( (Get-Date).DayOfWeek -eq "Sunday" ) { wsl --update }
wsl -u root bash -c "apt update && apt full-upgrade"
if ( wsl test -f /var/run/reboot-required ) { wsl --terminate }
wsl -u root bash -c "apt autoremove --purge && apt autoclean"
(Scoop) bash:n xtrace:n avulla saan eri prosesseissa suoritettavat komennot erottumaan helposti:
#!/bin/bash
# distro name in arg $1 is optional
wsl="wsl ${1/#/-d }"
sudo='-u root bash -c'
setx="PS4='\n# ${1:-WSL default}> '; set -x"
PS4='\n: $(basename $0)> '
[ $(date +%u) -eq 7 ] && (set -x; $wsl --update) # sundays
$wsl $sudo "$setx; apt update && apt full-upgrade" || exit
$wsl test -f /var/run/reboot-required && (set -x; wsl --terminate $1)
$wsl $sudo "$setx; apt autoremove --purge && apt autoclean"
Onko olemassa joku PowerShell-jekku, jolla pääsisi vastaavaan selkeyteen? Set-PSDebug -trace:n tulostus on aika ärsyttävä. Mieluummin tulostan komennon itse ennen sen suoritusta, jos mikään muu ei auta.
Kysymys koskee siis vain komentoja "wsl --terminate" ja "wsl --update".