Instalace sady .NET SDK pomocí funkce Snap

Tento článek popisuje, jak nainstalovat balíček snap-in .NET SDK. Snap balíčky SDK poskytuje a spravuje společnost Canonical. Moduly Snaps jsou skvělou alternativou ke správci balíčků, který je integrovaný do vaší linuxové distribuce.

Snap je balíček aplikace a jejích závislostí, které fungují napříč mnoha různými distribucemi Linuxu. Snapy jsou k dispozici a instalovatelné ze Snap Store. Další informace o funkci Snap naleznete v tématu Začínáme.

Důležité

Pokud nainstalujete .NET pomocí Snapu, používejte Snap ke správě všech instalací .NET. Vyhněte se kombinování Snapu s jinými metodami instalace, například se správcem balíčků nebo skriptovanou instalací, protože kombinování těchto metod může způsobit konflikty.

Upozornění

Instalace Snap systému .NET mohou mít problémy se spuštěním nástrojů .NET. Pokud chcete použít nástroje .NET, doporučujeme nainstalovat .NET pomocí skriptu dotnet-install nebo správce balíčků pro konkrétní distribuci Linuxu.

Jedná se o známý problém, že příkaz dotnet watch nefunguje, když se .NET nainstaluje přes snap.

Pokud budete používat nástroje .NET nebo příkaz dotnet watch, doporučujeme nainstalovat .NET pomocí skriptu dotnet-install.

Požadavky

  • Distribuce Linuxu, která podporuje modul snap.
  • snapd démon přichycení.

Vaše distribuce Linuxu už může obsahovat modul snap. Zkuste spustit snap z terminálu, abyste zjistili, jestli příkaz funguje. Seznam podporovaných distribucí Linuxu a pokyny k instalaci modulu snap naleznete v tématu Instalace snapd.

verze .NET

Microsoft publikuje .NET ve dvou různých zásadách podpory, dlouhodobé podpoře (LTS) a standardní podpoře (STS). Kvalita všech verzí je stejná. Jediným rozdílem je délka podpory. Verze LTS získají bezplatnou podporu a opravy po dobu tří let. Verze STS získají bezplatnou podporu a opravy chyb po dobu dvou let. Další informace najdete v tématu .NET Zásady podpory.

Verze .NET, které jsou aktuálně podporovány společností Microsoft, jsou:

  • 10.0 (LTS) – Podpora končí 14. listopadu 2028.
  • 9.0 (STS) – Podpora končí 10. listopadu 2026.
  • 8.0 (LTS) – Podpora končí 10. listopadu 2026.

Jiné entity, které sestavují a vydávají .NET, můžou zavádět různé zásady podpory. Nezapomeňte se s nimi seznámit s tím, jak se podporuje .NET.

1. Instalace sady SDK

Pokud chcete nainstalovat sadu .NET SDK, použijte identifikátory balíčku snap specifické pro verzi, protože tento přístup umožňuje nainstalovat a spravovat více verzí sady SDK vedle sebe. Například použijte dotnet-sdk-80 pro .NET 8 a dotnet-sdk-100 pro .NET 10. SDK zahrnuje ASP.NET Core i .NET runtime, které jsou verzovány podle SDK. Tento článek používá balíček snap sady .NET 10 SDK. Pokud používáte jiný balíček, nahraďte jej.

Tip

Stránka balíčku Snapcraft .NET SDK (.NET 8, .NET 9, .NET 10) obsahuje pokyny specifické pro distribuci, jak nainstalovat Snapcraft a .NET.

  1. Otevřete terminál.

  2. Pomocí příkazu snap install nainstalujte balíček snap sady .NET SDK.

    Následující příkaz nainstaluje .NET SDK 10:

    sudo snap install dotnet-sdk-100
    

Následující tabulka uvádí balíčky snap-in .NET SDK, které můžete nainstalovat:

verze .NET Balíček Snap
10 (LTS) dotnet-sdk-100
9 (STS) dotnet-sdk-90
8 (LTS) dotnet-sdk-80

2. Mapování příkazu dotnet

Vzhledem k tomu, že Snap nevytvoří neverzní dotnet příkaz, vytvořte symbolický odkaz, aby byl dotnet dostupný pro celý systém. Tento odkaz vytvořte jen pokud chcete namapovat příkaz dotnet na tuto konkrétní instalaci Snapu. Pokud již máte .NET nainstalován prostřednictvím jiné metody a vytvoříte tento odkaz, přepíše toto mapování.

Pokud /usr/local/bin/dotnet už existuje, před vytvořením odkazu ho odeberte.

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

3. Export umístění instalace

Nakonfigurujte proměnnou DOTNET_ROOT prostředí v profilu prostředí, protože nástroje ji používají k určení, kde je nainstalovaná .NET. Instalace pomocí Snapu tuto proměnnou automaticky nenastavují. Cesta používá následující formát: /snap/{package}/current/usr/lib/dotnet.

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

Nahraďte 100 nainstalovanou verzi sady SDK, například 80 pro .NET 8 nebo 90 pro .NET 9.

Trvale exportovat proměnnou prostředí

Předchozí export příkaz nastaví proměnnou prostředí pouze pro relaci terminálu, ve které byl spuštěn.

Profil prostředí můžete upravit a trvale přidat příkazy. Pro Linux je k dispozici mnoho různých shellů a každý má jiný profil. Příklad:

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

Upravte příslušný zdrojový soubor pro prostředí, přidejte příkaz pro export nainstalované .NET verze a uložte změny.

Například: export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet.

4. Použití rozhraní příkazového řádku .NET

Otevřete terminál a spusťte dotnet příkaz.

dotnet

Zobrazí se následující výstup:

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.

Informace o používání rozhraní příkazového řádku .NET najdete v tématu .NET přehled rozhraní příkazového řádku.

Řešení problému

Nejde nainstalovat Snap na WSL2

systemd musí být v instanci WSL2 povolena, aby bylo možné nainstalovat nástroj Snap.

  1. Otevřete /etc/wsl.conf v textovém editoru podle svého výběru.

  2. Vložte následující konfiguraci:

    [boot]
    systemd=true
    
  3. Uložte soubor a restartujte instanci WSL2 prostřednictvím PowerShellu. Použijte příkaz wsl.exe --shutdown.

Nejde přeložit příkaz dotnet nebo sadu SDK

U jiných aplikací, jako je integrované vývojové prostředí (IDE) nebo rozšíření ve Visual Studio Code, je běžné, že se pokouší vyhledat umístění sady .NET SDK. Zjišťování se obvykle provádí kontrolou DOTNET_ROOT proměnné prostředí nebo zjištěním umístění spustitelného dotnet souboru. Sada SDK nainstalovaná pomocí Snap .NET může tyto aplikace mást. Pokud tyto aplikace nemůžou vyřešit sadu .NET SDK, zobrazí se chyba podobná jedné z následujících zpráv:

  • Zadaný SDK 'Microsoft.NET.Sdk' nebyl nalezen.
  • Nelze najít zadanou sadu SDK 'Microsoft.NET.Sdk.Web'.
  • Zadaný SDK 'Microsoft.NET.Sdk.Razor' nebyl nalezen.

Zkuste problém vyřešit pomocí následujících kroků:

  1. Dokončeno 2. Namapujte příkaz dotnet.
  2. Trvale nastavte proměnnou prostředí DOTNET_ROOT podle postupu v části Trvalý export proměnné prostředí.

Chyby certifikátu TLS/SSL

Při instalaci .NET prostřednictvím modulu Snap je možné, že v některých distribucích se certifikáty TLS/SSL .NET nenalezeny a během restore se může zobrazit chyba:

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]

Pokud chcete tento problém vyřešit, nastavte několik proměnných prostředí:

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

Umístění certifikátu se liší podle distribuce. Tady jsou umístění pro distribuce, u kterých došlo k problému:

Distribuce Umístění
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt