この記事では、.NET SDK スナップ パッケージをインストールする方法について説明します。 .NET SDK スナップ パッケージは、Canonical によって提供および管理されます。 Snap は、Linux ディストリビューションに組み込まれているパッケージ マネージャーに代わる優れた方法です。
Snap は、さまざまな Linux ディストリビューションで機能するアプリとその依存関係のバンドルです。 Snap は、Snap Store で見つけてインストールできます。 Snap の詳細については、「 はじめに」を参照してください。
注意事項
.NETのスナップ インストールでは、.NET ツールの実行に問題が発生する可能性があります。 .NET ツールを使用する場合は、dotnet-install スクリプトまたは特定の Linux ディストリビューションのパッケージ マネージャーを使用して.NETをインストールすることをお勧めします。
snap を使用して.NETをインストールすると、dotnet watch コマンドが機能しないという既知の問題です。
.NET ツールまたは dotnet watch コマンドを使用する場合は、dotnet-install スクリプトを使用して.NETをインストールすることをお勧めします。
前提条件
- Snap をサポートする Linux ディストリビューション。
- スナップ デーモン
snapd。
Linux ディストリビューションには既に Snap が含まれている可能性があります。 ターミナルから snap を実行して、コマンドが機能するかどうかを確認してください。 サポートされている Linux ディストリビューションのリストと Snap のインストール方法については、snapd のインストールに関するページを参照してください。
.NET リリース
Microsoft .NETは、長期サポート (LTS) と Standard Term Support (STS) の 2 つの異なるサポート ポリシーの下で公開しています。 すべてのリリースの品質は同じです。 唯一の違いは、サポート期間の長さです。 LTS リリースでは、3 年間、無料サポートとパッチを利用できます。 STS リリースでは、2 年間無料のサポートとパッチが提供されます。 詳細については、「.NET サポート ポリシー」を参照してください。
現在 Microsoft でサポートされている.NETのバージョンは次のとおりです。
- 10.0 (LTS) - サポートは 2028 年 11 月 14 日に終了します。
- 9.0 (STS) - サポートは 2026 年 11 月 10 日に終了します。
- 8.0 (LTS)— 2026 年 11 月 10 日にサポートが終了します。
.NETをビルドしてリリースするその他のエンティティでは、さまざまなサポート ポリシーが導入される場合があります。 .NETがどのようにサポートされているかを理解するには、必ず確認してください。
1.SDK をインストールする
重要
.NET 10 は 2025 年 11 月 11 日にリリースされました。 パッケージがパッケージ マネージャー フィードに表示されるか、特定の Linux ディストリビューションにパッケージが含まれるには時間がかかる場合があります。
.NET 9 以降では、.NET SDK のスナップ パッケージは、バージョン固有の識別子 (たとえば、.NET 9 の場合は dotnet-sdk-90、.NET 10 の場合は dotnet-sdk-100) で公開されます。 .NET 9 より前では、すべての SDK バージョンが同じ識別子 dotnet-sdk で公開され、チャネルを介してバージョンを指定しました。 さらに、.NET 9 以降のスナップ パッケージでは x64 アーキテクチャと Arm64 アーキテクチャの両方がサポートされますが、以前のバージョンでは x64 のみがサポートされています。 SDK には、SDK にバージョン管理された ASP.NET Core ランタイムと .NET ランタイムの両方が含まれています。
ヒント
Snapcraft .NET SDK パッケージ ページには、Snapcraft と.NETのインストール方法に関するディストリビューション固有の手順が含まれています。
ターミナルを開きます。
snap installを使用して、.NET SDK スナップ パッケージをインストールします。--classicパラメーターが必要です。.NET 9 以降
バージョン固有のパッケージをインストールします。 たとえば、次のコマンドは SDK 10 .NETインストールします。
sudo snap install dotnet-sdk-100 --classic.NET 8 以前
dotnet-sdkパッケージからインストールし、チャネルを指定します。 このパラメーターを省略すると、latest/stableが使用されます。 たとえば、次のコマンドは SDK 8 .NETインストールします。sudo snap install dotnet-sdk --classic --channel 8.0/stable
dotnet snap の別名が自動的に作成され、Snap パッケージの dotnet コマンドにマップされます。
次の表に、インストールできるスナップ パッケージとチャネルを示します。
| .NET バージョン | スナップパッケージまたはチャネル |
|---|---|
| 10 (LTS) |
dotnet-sdk-100 (プレビュー) |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk --channel 8.0/stable |
| 7 |
dotnet-sdk --channel 7.0/stable (サポート対象外) |
| 6 |
dotnet-sdk --channel 6.0/stable (サポート対象外) |
| 5 |
dotnet-sdk --channel 5.0/stable (サポート対象外) |
| 3.1 |
dotnet-sdk --channel 3.1/stable (サポート対象外) |
| 2.1 |
dotnet-sdk --channel 2.1/stable (サポート対象外) |
2.インストール場所をエクスポートする
DOTNET_ROOT環境変数は、多くの場合、.NETがインストールされている場所を判断するためにツールによって使用されます。 .NET Snap を使用してインストールする場合、この環境変数は構成されません。 プロファイルで DOTNET_ROOT 環境変数を構成する必要があります。 スナップへのパスは、/snap/{package}/current の形式を使用します。
.NET 9 以降では、バージョン固有のパッケージ名を使用します。
export DOTNET_ROOT=/snap/dotnet-sdk-100/current
.NET 8 以前の場合は、共有パッケージ名を使用します。
export DOTNET_ROOT=/snap/dotnet-sdk/current
環境変数を永続的にエクスポートする
上記の export コマンドは、コマンドを実行したターミナル セッションの環境変数のみを設定します。
シェル プロファイルを編集して、コマンドを永続的に追加することができます。 Linux ではさまざまなシェルを使用でき、それぞれに異なるプロファイルがあります。 次に例を示します。
- Bash シェル: ~/.bash_profile、~/.bashrc
- Korn シェル: ~/.kshrc または .profile
- Z シェル: _~/.zshrc* または .zprofile
シェルに適したソース ファイルを編集し、インストールされている .NET バージョンのエクスポート コマンドを追加します。 .NET 9 以降の場合は、export DOTNET_ROOT=/snap/dotnet-sdk-100/current を使用します (必要に応じてバージョン番号を調整します)。 .NET 8 以前の場合は、export DOTNET_ROOT=/snap/dotnet-sdk/current を使用します。
3. .NET CLI を使用する
ターミナルを開き、「dotnet」と入力します。
dotnet
次の出力が表示されます。
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.
.NET CLI の使用方法については、.NET CLI の概要を参照してください。
トラブルシューティング
dotnet ターミナル コマンドが機能しない
Snap パッケージは、パッケージによって提供されるコマンドに別名をマップできます。 既定では、.NET SDK スナップ パッケージは、dotnet コマンドのエイリアスを作成します。 エイリアスが作成されていないか、以前に削除された場合は、次のコマンドを使用してエイリアスをマップします。
.NET 9 以降の場合:
sudo snap alias dotnet-sdk-100.dotnet dotnet
.NET 8 以前の場合:
sudo snap alias dotnet-sdk.dotnet dotnet
WSL2 に Snap をインストールできない
Snap をインストールするには、事前に WSL2 インスタンスで systemd を有効にする必要があります。
任意のテキスト エディターで
/etc/wsl.confを開きます。次の構成を貼り付けます。
[boot] systemd=trueファイルを保存し、PowerShell を使用して WSL2 インスタンスを再起動します。
wsl.exe --shutdownコマンドを使用します。
dotnet コマンドまたは SDKを解決できない
コード IDE や Visual Studio Code の拡張機能などの他のアプリでは、.NET SDK の場所を解決しようとするのが一般的です。 通常、検出は DOTNET_ROOT 環境変数を確認するか、dotnet 実行可能ファイルが配置されている場所を特定することによって行われます。 スナップインストールされた .NET SDK は、これらのアプリを混乱させる可能性があります。 これらのアプリで .NET SDK を解決できない場合は、次のいずれかのメッセージのようなエラーが表示されます。
- SDK 'Microsoft.NET.Sdk' が指定されたものが見つかりませんでした
- SDK 'Microsoft.NET.Sdk.Web' が見つかりませんでした
- 指定された SDK 'Microsoft.NET.Sdk.Razor' が見つかりませんでした。
問題を修正するには、次の手順を試してください。
DOTNET_ROOT環境変数を永続的にエクスポートしていることを確認します。snap
dotnet実行可能ファイルをプログラムが探している場所にシンボリック リンクしてみます。dotnetコマンドで検索される 2 つの一般的なパスは次のとおりです。/usr/local/bin/dotnet/usr/share/dotnet
次のコマンドを使用して、スナップ パッケージへのシンボリック リンクを作成します。 .NET 9 以降では、バージョン固有のパッケージ名を使用します。
ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnet.NET 8 以前の場合:
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
TLS/SSL 証明書のエラー
.NET Snap を使用してインストールすると、一部のディストリビューションで.NET TLS/SSL 証明書が見つからない可能性があり、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]
この問題を解決するには、いくつかの環境変数を設定します。
export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null
証明書の場所は、ディストリビューションによって異なります。 問題が発生したディストリビューションの場所を次に示します。
| Distribution | 場所 |
|---|---|
| フェドラ | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
| OpenSUSE | /etc/ssl/ca-bundle.pem |
| Solus | /etc/ssl/certs/ca-certificates.crt |
関連するコンテンツ
- .NET CLI の概要
- .NET CLI でタブ補完を有効にする方法
Tutorial: .NET
.NET