Microsoft 15. oktobrī laida publiskajā priekšskatījumā rīku dotnetup, kas instalē un atjaunina .NET SDK un izpildlaikus lietotāja mapē bez administratora tiesībām. Pieeja atkārto to, ko Rust dara ar rustup un Node ar nvm: viena komandrindas utilīta tur vienuviet visas instalētās versijas. Rīks darbojas macOS, Linux un Windows, bet pirmais laidiens ir vērsts uz tiem lietotājiem, kuri strādā ārpus Visual Studio un bez administratora tiesībām.
Līdz šim .NET uzlikšana ārpus Windows nozīmēja izvēli starp operētājsistēmas pakotnēm, instalētāja failiem vai bash skriptu dotnet-install.sh. Katram no šiem ceļiem bija sava problēma. Pakotnes raksta koplietotās sistēmas direktorijās un prasa sudo. Instalētāja faili neglabā ierakstu par to, kas jau uzlikts. Skripts dotnet-install.sh ielādēja versiju, taču pats to vēlāk neatjaunināja un neizmeta. dotnetup aizstāj šo skriptu un pievieno tam versiju pārvaldību, paraksta pārbaudi un vienu saskarni visām platformām. To visu Microsoft apraksta .NET emuāra ierakstā.
Instalēšana ar vienu komandu
Uzstādīšana sākas ar sākumskriptu, ko lejupielādē un palaiž vienā rindā. macOS lietotāji to laiž caur zsh, Linux lietotāji caur bash: curl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | bash. Pēc tam komanda dotnetup init sakārto čaulas profilu un uzliek jaunāko stabilo SDK. PowerShell lietotājiem ir atsevišķs skripts, ko palaiž ar irm https://aka.ms/dotnetup/get-dotnetup.ps1 | iex.
Neviena darbība neprasa sudo vai root. Visi SDK, izpildlaiki un metadati nonāk lietotāja īpašumā esošā mapē, tāpēc instalēšana nepieskaras sistēmas failiem. Praksē tas nozīmē, ka .NET var uzlikt uz kopīga servera vai iekšā konteinera, kur administratora tiesību nav. Tā ir arī galvenā atšķirība no klasiskajām pakotnēm, kuras raksta koplietotās direktorijās.
Kanāli un piesaistītas versijas
dotnetup glabā versijas pēc kanāliem. Ieraksts 10.0 seko atjauninājumiem .NET 10 ietvaros. Kanāls latest seko jaunākajam stabilajam SDK un pāriet arī uz nākamo lielo laidienu. Priekšskatījumiem ir preview un daily kanāli gan SDK, gan izpildlaikiem, piemēram, dotnetup sdk install daily uzliek dienas būvējumu.
Precīzi norādīta versija paliek piesaistīta. Ja izstrādātājs instalē 10.0.3, komanda dotnetup update to vairs nepaaugstinās. Tas ir svarīgi projektos, kur jātur konkrēta servisa versija. Izpildlaikus un SDK var pievienot atsevišķi, piemēram, dotnetup runtime install aspnetcore@10.0 uzliek ASP.NET Core izpildlaiku bez visa SDK. Pašu rīku atjaunina ar dotnetup self update. Komanda dotnetup update pārinstalē jaunākās atbilstošās versijas visiem izsekotajiem kanāliem.
Vairākas versijas blakus
Vienlaikus var turēt vairākas servisa versijas, priekšskatījuma kanālus un dienas būvējumus. Komanda dotnetup list parāda visu instalēto. Pēc atjaunināšanas dotnetup noņem komponentes, ko vairs nepieprasa neviens kanāls, bet atstāj tās, kas joprojām vajadzīgas citam kanālam vai precīzai versijai. Tas ļauj vienam izstrādātājam uz vienas mašīnas būvēt gan stabilu produkcijas kodu, gan testēt nākamo .NET laidienu. Atdzēšanu veic ar dotnetup sdk uninstall, kas noņem kanāla vai precīzas versijas prasību.
Salīdzinājumā ar dotnet-install skriptu dotnetup pievieno instalēto komponenšu pārvaldību, paraksta un kontrolsummas pārbaudi, ātrāku vairāku versiju uzlikšanu un vienu komandrindu visām platformām.
global.json un ko tas atrisina
Neatkarīgā apskatā izdevums ITNext dotnetup salīdzina ar rustup un atzīmē, ka rīks lasa repozitorija global.json failu un seko tajā norādītajam SDK kanālam. Fails global.json .NET projektos jau norāda, kura SDK versija jālieto. Līdz šim izstrādātājam šī versija bija jāuzliek pašam. Ar dotnetup komanda, kura jau tur global.json versiju repozitorijā, iegūst pareizo SDK bez papildu konfigurācijas. Tas tuvina .NET pie modeļa, kādu Rust un Node izstrādātāji sagaida no savas valodas rīkiem.
Paraksta un kontrolsummas pārbaude
dotnetup pirms uzlikšanas pārbauda katras lejupielādes parakstu un kontrolsummu. Vecais dotnet-install.sh to nedarīja, tāpēc izstrādātājam pašam bija jāuzticas, ka fails nāk no pareizā avota. Jaunais rīks arī ātrāk uzliek vairākas versijas vienā piegājienā, jo lejupielādes notiek paralēli. Microsoft pozicionē dotnetup kā vienu rīku visām trim darbvirsmas platformām, tādēļ komanda, kurā strādā gan macOS, gan Linux, gan Windows lietotāji, var lietot vienu un to pašu komandu kopumu dokumentācijā.
Rīks neaizstāj Visual Studio instalētāju un neskar .NET, kas nāk komplektā ar Visual Studio. Tas ir domāts komandrindas un redaktoru lietotājiem, kuri līdz šim balstījās uz pakotnēm vai uz dotnet-install skriptu. Tiem, kas .NET lieto caur Docker attēliem, dotnetup neko nemaina, jo attēli joprojām nāk ar iebūvētu SDK.
Ko priekšskatījums vēl nedara
Robežas ir vairākas. Windows sistēmas līmeņa instalācijas ar administratora tiesībām vēl nav pieejamas, tās Microsoft sola nākamajā laidienā. Nav integrācijas ar CI sistēmām, tādām kā GitHub Actions vai Azure DevOps. Rīks nepārvalda darbaslodzes. Winget atbalsta pagaidām nav. Komentāros Microsoft min, ka sistēmas mēroga macOS instalācijas nav plānos. Rīks ir publiskā priekšskatījumā, tāpēc tā uzvedība līdz vispārējai pieejamībai var mainīties.
Priekšskatījums ir pieejams no 15. oktobra. Stabilā laidiena datumu Microsoft vēl nav nosaukusi.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.