.NET SDK telepítése a Snap eszközzel

Ez a cikk a .NET SDK beépülő csomag telepítését ismerteti. .NET SDK beépülő csomagokat a Canonical biztosítja és tartja karban. A snapek nagyszerű alternatívát jelentenek a Linux-disztribúcióba beépített csomagkezelő helyett.

A snap egy alkalmazás és annak függőségeinek csomagja, amely számos különböző Linux-disztribúcióban működik. A snap-ek felderíthetők és telepíthetők a Snap Store-ból. A Snap szolgáltatással kapcsolatos további információkért lásd: Első lépések.

Figyelemfelhívás

A .NET Snap telepítésekkel problémák merülhetnek fel, amikor .NET eszközöket futtatnak. Ha .NET eszközöket szeretne használni, javasoljuk, hogy telepítse a .NET a dotnet-install szkript vagy az adott Linux-disztribúció csomagkezelőjével.

Ismert probléma, hogy a dotnet watch parancs nem működik, ha a .NET Snapen keresztül van telepítve.

Ha .NET eszközöket vagy a dotnet watch parancsot használja, javasoljuk, hogy telepítse a .NET a dotnet-install szkript használatával.

Előfeltételek

  • A snapet támogató Linux-disztribúció.
  • snapd a snap démon.

Előfordulhat, hogy a Linux-disztribúció már tartalmazza a snapet. Próbálja meg futtatni a snap parancsot egy terminálban, hogy meggyőződjön, működik-e. A támogatott Linux-disztribúciók listáját és a beépülő modul telepítésével kapcsolatos utasításokat a Telepítés snapdcímű témakörben találja.

.NET kiadások

A Microsoft két különböző támogatási szabályzat, a hosszú távú támogatás (LTS) és a standard távú támogatás (STS) keretében teszi közzé .NET. Az összes kiadás minősége ugyanaz. Az egyetlen különbség a támogatás hossza. Az LTS-kiadások három évig ingyenes támogatást és javításokat kapnak. Az STS-kiadások két évig ingyenes támogatást és javításokat kapnak. További információ: .NET támogatási szabályzat.

A Microsoft által jelenleg támogatott .NET verziói a következők:

  • 10.0 (LTS)– A támogatás 2028. november 14-ig tart.
  • 9.0 (STS)– A támogatás 2026. november 10-ig tart.
  • 8.0 (LTS)– A támogatás 2026. november 10-ig tart.

Más entitások, amelyek .NET építenek és bocsátanak ki, különböző támogatási szabályzatokat vezetnek be. Győződjön meg arról, hogy megkérdezi őket, hogy megértse, hogyan támogatják a .NET-et.

1. Az SDK telepítése

Fontos

.NET 10 2025. november 11-én jelent meg. Időbe telhet, mire a csomagok megjelennek a csomagkezelő hírcsatornáiban, vagy az adott Linux-disztribúció belefoglalja.

A .NET 9-től kezdve a .NET SDK illesztőcsomagjai verzióspecifikus azonosítók alatt jelennek meg (például a 9. .NET dotnet-sdk-90, a .NET 10-es dotnet-sdk-100). A .NET 9 előtt az összes SDK-verzió ugyanazzal az azonosítóval, dotnet-sdk, jelent meg, és a verziót egy csatorna segítségével adta meg. Emellett a .NET 9- és újabb snap csomagok támogatják az x64- és Arm64-architektúrákat is, míg a korábbi verziók csak az x64-et támogatják. Az SDK tartalmazza az SDK-ra verziószámozott ASP.NET Core és .NET futtatókörnyezetet is.

Tipp

A Snapcraft .NET SDK csomagoldala (.NET 9, .NET 10) terjesztési specifikus utasításokat tartalmaz a Snapcraft és a .NET telepítéséhez.

  1. Nyisson meg egy terminált.

  2. A .NET SDK snap csomag telepítéséhez használja a snap install.

    A --classic paraméter megadása kötelező.

    • A .NET 9 és későbbi verziókhoz

      Telepítse a verzióspecifikus csomagot. A következő parancs például telepíti .NET SDK 10-et:

      sudo snap install dotnet-sdk-100 --classic
      
    • A .NET 8 és korábbi

      Telepítse a dotnet-sdk csomagot, és adjon meg egy csatornát. Ha ez a paraméter nincs megadva, akkor latest/stable lesz használva. A következő parancs például telepíti .NET SDK 8-at:

      sudo snap install dotnet-sdk --classic --channel 8.0/stable
      

A dotnet snap alias automatikusan létrejön, és megfeleltetve lesz a snap csomag parancsához dotnet .

Az alábbi táblázat felsorolja a telepíthető illesztőcsomagokat és csatornákat:

.NET verzió Csomag vagy csatorna illesztés
10 (LTS) dotnet-sdk-100 (előzetes verzió)
9 (STS) dotnet-sdk-90
8 (LTS) dotnet-sdk --channel 8.0/stable

2. A telepítési hely exportálása

A DOTNET_ROOT környezeti változót gyakran használják az eszközök annak meghatározására, hogy hol van telepítve a .NET. Amikor a .NET Snapen keresztül van telepítve, ez a környezeti változó nincs konfigurálva. Konfigurálja a DOTNET_ROOT környezeti változót a profiljában. A snap elérési útja a következő formátumot használja: /snap/{package}/current.

A .NET 9-es és újabb verzióihoz használja a verzióspecifikus csomagnevet:

export DOTNET_ROOT=/snap/dotnet-sdk-100/current

A 8. és korábbi .NET használja a megosztott csomag nevét:

export DOTNET_ROOT=/snap/dotnet-sdk/current

A környezeti változó végleges exportálása

Az előző export parancs csak arra a terminál munkamenetre állítja be a környezeti változót, amelyben futtatták.

A parancsok végleges hozzáadásához szerkesztheti a rendszerhéjprofilt. Linux rendszeren számos különböző shell érhető el, és mindegyik más profillal rendelkezik. Példa:

  • Bash Shell: ~/.bash_profile, ~/.bashrc
  • Korn Shell: ~/.kshrc vagy .profile
  • Z Shell: _~/.zshrc* vagy .zprofile

Szerkessze a megfelelő shell forrásfájlt, és adja hozzá a telepített .NET verzió export parancsát. A .NET 9+ esetén használja a export DOTNET_ROOT=/snap/dotnet-sdk-100/current (szükség szerint módosítsa a verziószámot). A .NET 8-ban és a korábbi verziókban a export DOTNET_ROOT=/snap/dotnet-sdk/current használatát alkalmazza.

3. A .NET parancssori felület használata

Nyisson meg egy terminált, és írja be a(z) dotnet.

dotnet

A következő kimenet jelenik meg:

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.

A .NET parancssori felület használatáról a .NET parancssori felület áttekintésében olvashat.

Hibaelhárítás

A dotnet terminálparancs nem működik

A snap-csomagok egy aliast a csomag által biztosított parancsra képezhetnek le. Alapértelmezés szerint a .NET SDK beépülő csomagok létrehoznak egy aliast a dotnet parancshoz. Ha az aliast nem hozták létre vagy korábban eltávolították, az alábbi paranccsal képezheti le az aliast.

9-.NET és újabb verziók esetén:

sudo snap alias dotnet-sdk-100.dotnet dotnet

8-.NET és korábbi verziók esetén:

sudo snap alias dotnet-sdk.dotnet dotnet

Nem telepíthető a Snap on WSL2

A Snap telepítése előtt engedélyezni kell a systemd a WSL2-n.

  1. Nyissa meg /etc/wsl.conf a kívánt szövegszerkesztőben.

  2. Illessze be a következő konfigurációt:

    [boot]
    systemd=true
    
  3. Mentse a fájlt, és indítsa újra a WSL2-példányt a PowerShell használatával. Használja a wsl.exe --shutdown parancsot.

A dotnet parancs vagy az SDK nem oldható fel

Más alkalmazások, például egy kódfejlesztő környezet vagy a Visual Studio Code bővítményei esetében gyakori, hogy megpróbálják meghatározni a .NET SDK helyét. A felderítés általában a DOTNET_ROOT környezeti változó ellenőrzésével vagy a dotnet végrehajtható fájl helyére való kitalálással történik. A beépülő modullal telepített .NET SDK összezavarhatja ezeket az alkalmazásokat. Ha ezek az alkalmazások nem tudják megoldani a .NET SDK-t, a következő üzenetek egyikéhez hasonló hibaüzenet jelenik meg:

  • A megadott 'Microsoft.NET.Sdk' SDK nem található.
  • A megadott 'Microsoft.NET.Sdk.Web' SDK nem található.
  • A 'Microsoft.NET.Sdk.Razor' megadott SDK nem található.

A probléma megoldásához próbálkozzon az alábbi lépésekkel:

  1. Győződjön meg arról, hogy a DOTNET_ROOT környezeti változót véglegesen exportálja.

  2. Próbálja meg a snap dotnet futtatható fájlt szimbolikus linkként összekapcsolni a program által keresett helyre.

    A parancs két gyakori elérési útját dotnet keresi:

    • /usr/local/bin/dotnet
    • /usr/share/dotnet

    Az alábbi paranccsal hozzon létre egy szimbolikus hivatkozást a snap csomagra. A .NET 9-es és újabb verzióihoz használja a verzióspecifikus csomagnevet:

    ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnet
    

    8-.NET és korábbi verziók esetén:

    ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
    

TLS-/SSL-tanúsítványhibák

Ha .NET beépülő modulon keresztül van telepítve, előfordulhat, hogy egyes disztribúciókban nem találhatók a .NET TLS/SSL-tanúsítványok, és a restore során hibaüzenet jelenhet meg:

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]

A probléma megoldásához állítson be néhány környezeti változót:

export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null

A tanúsítvány helye elosztás szerint változik. Az alábbiakban azoknak a disztribúcióknak a helyei találhatók, ahol a problémát észlelték:

Disztribúció Lokáció
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt