Installera .NET SDK med Snap
I den här artikeln beskrivs hur du installerar .NET SDK-snappaketet. .NET SDK snap-paket tillhandahålls av och underhålls av Canonical. Snaps är ett bra alternativ till pakethanteraren som är inbyggd i din Linux-distribution.
En snap är ett paket med en app och dess beroenden som fungerar i många olika Linux-distributioner. Snappar kan identifieras och installeras från Snap Store. Mer information om Snap finns i Snabbstartsturné.
Varning
Snapinstallationer av .NET kan ha problem med att köra .NET-verktyg. Om du vill använda .NET-verktyg rekommenderar vi att du installerar .NET med hjälp av skriptet dotnet-install
eller pakethanteraren för den specifika Linux-distributionen.
Det är ett känt problem att dotnet watch
kommandot inte fungerar när .NET installeras via Snap.
Om du ska använda .NET-verktyg eller dotnet watch
kommandot rekommenderar vi att du installerar .NET med hjälp av skriptetdotnet-install
.
Förutsättningar
- Linux-distribution som stöder snap.
snapd
snap-daemonen.
Linux-distributionen kanske redan innehåller snap. Prova att köra snap
från en terminal för att se om kommandot fungerar. En lista över Linux-distributioner som stöds och instruktioner för hur du installerar snap finns i Installera snapd
.
.NET-versioner
Microsoft publicerar .NET under två olika supportprinciper, Long Term Support (LTS) och Standard Term Support (STS). Kvaliteten på alla utgåvor är densamma. Den enda skillnaden är supportens längd. LTS-versioner får kostnadsfri support och korrigeringar i tre år. STS-versioner får kostnadsfri support och korrigeringar i 18 månader. Mer information finns i .NET-supportprincip.
De versioner av .NET som för närvarande stöds av Microsoft är:
- 8.0 (LTS)– Supporten upphör den 10 november 2026.
- 6.0 (LTS)–Supporten upphör den 12 november 2024.
Andra entiteter som skapar och släpper .NET kan introducera olika supportprinciper. Var noga med att kontrollera med dem för att förstå hur .NET stöds.
1. Installera SDK
Snap-paket för .NET SDK publiceras alla under samma identifierare: dotnet-sdk
. Du kan installera en specifik version av SDK:et genom att ange kanalen. SDK:et innehåller både ASP.NET Core- och .NET-körningen, som är version till SDK: et.
Dricks
Snapcraft .NET SDK-paketsidan innehåller distributionsspecifika instruktioner för hur du installerar Snapcraft och .NET.
Öppna en terminal.
Använd
snap install
för att installera .NET SDK snap-paketet. Följande kommando installerarlatest/stable
till exempel kanalen, som är standard.sudo snap install dotnet-sdk --classic
- Parametern
--classic
krävs. - Använd parametern
--channel
för att ange vilken version som ska installeras. Om den här parametern utelämnaslatest/stable
används. Installerar till exempel--channel 8.0/stable
.NET SDK 8.0.
- Parametern
Snap-aliaset dotnet
skapas automatiskt och mappas till snappaketets dotnet
kommando.
I följande tabell visas de paketkanaler som du kan installera:
.NET-version | Fäst paketkanal |
---|---|
8 (LTS) | 8.0/stable latest/stable lts/stable |
7 | 7.0/stable (supporten är slut) |
6 (LTS) | 6.0/stable |
5 | 5.0/stable (supporten är slut) |
3.1 | 3.1/stable (supporten är slut) |
2.1 | 2.1/stable (supporten är slut) |
2. Exportera installationsplatsen
Miljövariabeln DOTNET_ROOT
används ofta av verktyg för att avgöra var .NET är installerat. När .NET installeras via Snap konfigureras inte den här miljövariabeln. Du bör konfigurera DOTNET_ROOT miljövariabeln i din profil. Sökvägen till snapen använder följande format: /snap/{package}/current
.
export DOTNET_ROOT=/snap/dotnet-sdk/current
Exportera miljövariabeln permanent
export
Föregående kommando anger endast miljövariabeln för terminalsessionen där den kördes.
Du kan redigera shell-profilen för att permanent lägga till kommandona. Det finns många olika gränssnitt för Linux och var och en har en annan profil. Till exempel:
- Bash Shell: ~/.bash_profile, ~/.bashrc
- Korn Shell: ~/.kshrc eller .profile
- Z Shell: _~/.zshrc* eller .zprofile
Redigera lämplig källfil för gränssnittet och lägg till export DOTNET_ROOT=/snap/dotnet-sdk/current
.
3. Använd .NET CLI
Öppna en terminal och skriv dotnet
.
dotnet
Följande utdata visas:
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
Information om hur du använder .NET CLI finns i .NET CLI-översikt.
Felsökning
- Dotnet-terminalkommandot fungerar inte
- Det går inte att installera Snap på WSL2
- Det går inte att matcha dotnet-kommandot eller SDK:t
- TLS/SSL-certifikatfel
Dotnet-terminalkommandot fungerar inte
Snap-paket kan mappa ett alias till ett kommando som tillhandahålls av paketet. Som standard skapar .NET SDK snap-paket ett alias för dotnet
kommandot. Om aliaset inte skapades eller togs bort tidigare visar följande kommando hur du mappar aliaset:
sudo snap alias dotnet-sdk.dotnet dotnet
Det går inte att installera Snap på WSL2
systemd
måste aktiveras på WSL2-instansen innan Snap kan installeras.
Öppna
/etc/wsl.conf
i valfri textredigerare.Klistra in följande konfiguration:
[boot] systemd=true
Spara filen och starta om WSL2-instansen via PowerShell. Använd kommandot
wsl.exe --shutdown
.
Det går inte att matcha dotnet-kommandot eller SDK:t
Det är vanligt att andra appar, till exempel en kod-IDE eller ett tillägg i Visual Studio Code, försöker lösa platsen för .NET SDK. Identifiering görs vanligtvis genom att kontrollera DOTNET_ROOT
miljövariabeln eller ta reda på var den dotnet
körbara filen finns. En snapinstallerad .NET SDK kan förvirra dessa appar. När dessa appar inte kan lösa .NET SDK visas ett fel som liknar något av följande meddelanden:
- Det gick inte att hitta det angivna SDK:t Microsoft.NET.Sdk
- Det gick inte att hitta det angivna SDK:t Microsoft.NET.Sdk.Web
- Det gick inte att hitta det angivna SDK:t Microsoft.NET.Sdk.Razor
Prova följande steg för att åtgärda problemet:
Se till att du exporterar
DOTNET_ROOT
miljövariabeln permanent.Försök att symboliskt länka snapen
dotnet
som kan köras till den plats som programmet letar efter.Två vanliga sökvägar som
dotnet
kommandot letar efter är:/usr/local/bin/dotnet
/usr/share/dotnet
Använd följande kommando för att skapa en symbolisk länk till snap-paketet:
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
TLS/SSL-certifikatfel
När .NET installeras via Snap är det möjligt att .NET TLS/SSL-certifikaten på vissa distributioner kanske inte hittas och du kan få ett fel under restore
:
Processing post-creation actions...
Running 'dotnet restore' on /home/myhome/test/test.csproj...
Restoring packages for /home/myhome/test/test.csproj...
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj]
Lös problemet genom att ange några miljövariabler:
export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null
Certifikatplatsen varierar beroende på distribution. Här är platserna för de distributioner där problemet har observerats:
Distribution | Plats |
---|---|
Fedora | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
OpenSUSE | /etc/ssl/ca-bundle.pem |
Solus | /etc/ssl/certs/ca-certificates.crt |