Snap を使用して .NET SDK または .NET ランタイムをインストールするInstall the .NET SDK or the .NET Runtime with Snap

Snap パッケージを使用して、.NET SDK または .NET ランタイムをインストールします。Use a Snap package to install the .NET SDK or .NET Runtime. Snap は、Linux ディストリビューションに組み込まれているパッケージ マネージャーに代わる優れた方法です。Snaps are a great alternative to the package manager built into your Linux distribution. この記事では、Snap を使用して .NET をインストールする方法について説明します。This article describes how to install .NET through Snap.

Snap は、アプリとその依存関係のバンドルであり、さまざまな Linux ディストリビューション間で変更を加えることなく動作します。A snap is a bundle of an app and its dependencies that works without modification across many different Linux distributions. Snap は、Snap Store で見つけてインストールできます。Snaps are discoverable and installable from the Snap Store. Snap の詳細については、Snap の概要に関するページをご覧ください。For more information about Snap, see Getting started with Snap.

注意事項

Snap パッケージは、Windows 10 の WSL2 ではサポートされていません。Snap packages aren't supported in WSL2 on Windows 10. 別の方法としては、dotnet-install スクリプトまたは特定の WSL2 ディストリビューション用のパッケージ マネージャーを使用します。As an alternative, use the dotnet-install script or the package manager for the particular WSL2 distribution. 推奨されませんが、snapcraft フォーラムからサポートされていない回避策を使用して Snap を有効にしてみることができます。It's not recommended but you can try to enable snap with an unsupported workaround from the snapcraft forums.

.NET のリリース.NET releases

Snap では、✔️ サポートされているバージョンの .NET SDK のみを利用できます。Only ✔️ supported versions of .NET SDK are available through Snap. .NET ランタイムのすべてのバージョンは、バージョン 2.1 以降の Snap から使用できます。All versions of the .NET Runtime are available through snap starting with version 2.1. 次の表は、.NET (および .NET Core) のリリースの一覧です。The following table lists the .NET (and .NET Core) releases:

✔️ Supported✔️ Supported ❌ サポートされていない❌ Unsupported
5.05.0 3.03.0
3.1 (LTS)3.1 (LTS) 2.22.2
2.1 (LTS)2.1 (LTS) 2.02.0
1.11.1
1.01.0

.NET リリースのライフ サイクルの詳細については、「.NET Core と .NET 5 のサポート ポリシー」を参照してください。For more information about the life cycle of .NET releases, see .NET Core and .NET 5 Support Policy.

SDK またはランタイムSDK or Runtime

.NET アプリを開発する場合は、SDK をインストールします (これにはランタイムが含まれます)。Install the SDK (which includes the runtime) if you want to develop .NET apps. または、アプリを実行する必要があるだけの場合は、ランタイムをインストールします。Or, if you only need to run apps, install the Runtime. ランタイムをインストールする場合は、ASP.NET Core ランタイム をインストールすることをお勧めします。これには .NET と ASP.NET の Core ランタイムの両方が含まれているためです。If you're installing the Runtime, we suggest you install the ASP.NET Core Runtime as it includes both .NET and ASP.NET Core runtimes.

既に SDK またはランタイムをインストールしている場合は、dotnet --list-sdksdotnet --list-runtimes コマンドを使用して、インストールされているバージョンを確認します。If you've already installed the SDK or Runtime, use the dotnet --list-sdks and dotnet --list-runtimes commands to see which versions are installed. 詳細については、.NET が既にインストールされていることを確認する方法に関するページを参照してください。For more information, see How to check that .NET is already installed.

SDK のインストールInstall the SDK

.NET SDK 用の Snap パッケージはすべて、同じ識別子 dotnet-sdk で公開されます。Snap packages for the .NET SDK are all published under the same identifier: dotnet-sdk. 特定のバージョンの SDK は、チャネルを指定することによってインストールできます。A specific version of the SDK can be installed by specifying the channel. SDK には、対応するランタイムが含まれています。The SDK includes the corresponding runtime. 次の表に、チャネルの一覧を示します。The following table lists the channels:

.NET のバージョン.NET version Snap パッケージまたはチャネルSnap package or channel
5.05.0 5.0 または latest/stable5.0 or latest/stable
3.1 (LTS)3.1 (LTS) 3.1 または lts/stable3.1 or lts/stable
2.1 (LTS)2.1 (LTS) 2.1

snap install コマンドを使用して、.NET SDK の Snap パッケージをインストールします。Use the snap install command to install a .NET SDK snap package. --channel パラメーターを使用して、インストールするバージョンを指定します。Use the --channel parameter to indicate which version to install. このパラメーターを省略すると、latest/stable が使用されます。If this parameter is omitted, latest/stable is used. この例では、5.0 が指定されています。In this example, 5.0 is specified:

sudo snap install dotnet-sdk --classic --channel=5.0

次に、snap alias コマンドを使用して、システムの dotnet コマンドを登録します。Next, register the dotnet command for the system with the snap alias command:

sudo snap alias dotnet-sdk.dotnet dotnet

このコマンドの形式は次のとおりです: sudo snap alias {package}.{command} {alias}This command is formatted as: sudo snap alias {package}.{command} {alias}. {alias} の名前は自由に選択できます。You can choose any {alias} name you would like. たとえば、snap によってインストールされた特定のバージョンにちなんでコマンドの名前を指定できます: sudo snap alias dotnet-sdk.dotnet dotnet50For example, you could name the command after the specific version installed by snap: sudo snap alias dotnet-sdk.dotnet dotnet50. コマンド dotnet50 を使用すると、この特定のバージョンの .NET が呼び出されます。When you use the command dotnet50, you'll invoke this specific version of .NET. ただし、異なるエイリアスの選択は、ほとんどのチュートリアルや例と互換性がありません。それらでは、dotnet コマンドを使用することが想定されているためです。But choosing a different alias is incompatible with most tutorials and examples as they expect a dotnet command to be used.

ランタイムをインストールするInstall the runtime

.NET ランタイム用の Snap パッケージはそれぞれ、独自のパッケージ識別子で公開されます。Snap packages for the .NET Runtime are each published under their own package identifier. 次の表に、パッケージ識別子の一覧を示します。The following table lists the package identifiers:

.NET のバージョン.NET version Snap パッケージSnap package
5.05.0 dotnet-runtime-50
3.1 (LTS)3.1 (LTS) dotnet-runtime-31
3.03.0 dotnet-runtime-30
2.22.2 dotnet-runtime-22
2.1 (LTS)2.1 (LTS) dotnet-runtime-21

snap install コマンドを使用して、.NET ランタイムの Snap パッケージをインストールします。Use the snap install command to install a .NET Runtime snap package. この例では、.NET 5.0 がインストールされます。In this example, .NET 5.0 is installed:

sudo snap install dotnet-runtime-50 --classic

次に、snap alias コマンドを使用して、システムの dotnet コマンドを登録します。Next, register the dotnet command for the system with the snap alias command:

sudo snap alias dotnet-runtime-50.dotnet dotnet

コマンドの形式は次のとおりです: sudo snap alias {package}.{command} {alias}The command is formatted as: sudo snap alias {package}.{command} {alias}. {alias} の名前は自由に選択できます。You can choose any {alias} name you would like. たとえば、snap によってインストールされた特定のバージョンにちなんでコマンドの名前を指定できます: sudo snap alias dotnet-runtime-50.dotnet dotnet50For example, you could name the command after the specific version installed by snap: sudo snap alias dotnet-runtime-50.dotnet dotnet50. コマンド dotnet50 を使用すると、特定のバージョンの .NET が呼び出されます。When you use the command dotnet50, you'll invoke a specific version of .NET. ただし、異なるエイリアスの選択は、ほとんどのチュートリアルや例と互換性がありません。それらでは、dotnet コマンドを使用できることが想定されているためです。But choosing a different alias is incompatible with most tutorials and examples as they expect a dotnet command to be available.

インストール場所をエクスポートするExport the install location

DOTNET_ROOT 環境変数は、.NET がインストールされている場所を判断するためにツールによって使用されることがよくあります。The DOTNET_ROOT environment variable is often used by tools to determine where .NET is installed. スナップを使用して .NET をインストールすると、この環境変数は構成されません。When .NET is installed through Snap, this environment variable isn't configured. プロファイルで DOTNET_ROOT 環境変数を構成する必要があります。You should configure the DOTNET_ROOT environment variable in your profile. スナップへのパスは、/snap/{package}/current の形式を使用します。The path to the snap uses the following format: /snap/{package}/current. たとえば、dotnet-sdk スナップをインストールした場合は、次のコマンドを使用して、.NET が配置されている場所に環境変数を設定します。For example, if you installed the dotnet-sdk snap, use the following command to set the environment variable to where .NET is located:

export DOTNET_ROOT=/snap/dotnet-sdk/current

ヒント

上記の export コマンドは、コマンドを実行したターミナル セッションの環境変数のみを設定します。The preceding export command only sets the environment variable for the terminal session in which it was run.

シェル プロファイルを編集して、コマンドを永続的に追加することができます。You can edit your shell profile to permanently add the commands. Linux ではさまざまなシェルを使用でき、それぞれに異なるプロファイルがあります。There are a number of different shells available for Linux and each has a different profile. 次に例を示します。For example:

  • Bash シェル: ~/.bash_profile~/.bashrcBash Shell: ~/.bash_profile, ~/.bashrc
  • Korn シェル: ~/.kshrc または .profileKorn Shell: ~/.kshrc or .profile
  • Z シェル: ~/.zshrc または .zprofileZ Shell: ~/.zshrc or .zprofile

シェルの適切なソース ファイルを編集し、export DOTNET_ROOT=/snap/dotnet-sdk/current を追加します。Edit the appropriate source file for your shell and add export DOTNET_ROOT=/snap/dotnet-sdk/current.

TLS/SSL 証明書のエラーTLS/SSL Certificate errors

Snap を使用して .NET をインストールする場合、一部のディストリビューションでは .NET の TLS/SSL 証明書が見つからないことがあり、restore の間にエラーが表示される可能性があります。When .NET is installed through Snap, it's possible that on some distros the .NET TLS/SSL certificates may not be found and you may receive an error during 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]

この問題を解決するには、いくつかの環境変数を設定します。To resolve this problem, set a few environment variables:

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

証明書の場所は、ディストリビューションによって異なります。The certificate location will vary by distro. 次に、問題が発生したディストリビューションの場所を示します。Here are the locations for the distros where the issue has been experienced.

DistributionDistribution 場所Location
FedoraFedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSEOpenSUSE /etc/ssl/ca-bundle.pem
SolusSolus /etc/ssl/certs/ca-certificates.crt

次のステップNext steps