Snap を使用して .NET SDK をインストールする
この記事では、.NET SDK Snap パッケージのインストール方法について説明します。 .NET SDK Snap パッケージは、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 では、長期サポート (LTS) と標準期間サポート (STS) の 2 つの異なるサポート ポリシーの下で .NET を公開しています。 すべてのリリースの品質は同じです。 唯一の違いは、サポート期間の長さです。 LTS リリースでは、3 年間、無料サポートとパッチを利用できます。 STS リリースでは、18 か月間、無料サポートとパッチを利用できます。 詳細については、.NET のサポート ポリシーに関するページを参照してください。
Microsoft で現在サポートされている .NET のバージョンは次のとおりです。
- 9.0 (STS) - サポートは 2026 年 終了。
- 8.0 (LTS)— 2026 年 11 月 10 日にサポートが終了します。
.NET をビルドしてリリースしている他の組織では、異なるサポート ポリシーを導入している場合があります。 .NET がどのようにサポートされているかを理解するには、必ずそれらの組織に確認してください。
1.SDK をインストールする
重要
.NET 9 は 2024 年 11 月 12 日にリリースされました。 パッケージがパッケージ マネージャー フィードに表示されるか、特定の Linux ディストリビューションにパッケージが含まれるには時間がかかる場合があります。
.NET SDK 用の Snap パッケージはすべて、同じ識別子 dotnet-sdk
で公開されます。 特定のバージョンの SDK は、チャネルを指定することによってインストールできます。 SDK には、そのSDK に合わせてバージョン管理された ASP.NET Core と .NET ランタイムの両方が含まれています。
ヒント
Snapcraft .NET SDK パッケージ ページには、Snapcraft と .NET のインストール方法に関するディストリビューション固有の手順が記載されています。
ターミナルを開きます。
snap install
を使用して.NET SDK Snap パッケージをインストールします。 たとえば、次のコマンドは、既定のlatest/stable
チャネルをインストールします。sudo snap install dotnet-sdk --classic
--classic
パラメーターは必須です。--channel
パラメーターを使用して、インストールするバージョンを指定します。 このパラメーターを省略すると、latest/stable
が使用されます。 たとえば、--channel 8.0/stable
は .NET SDK 8.0 をインストールします。
dotnet
snap の別名が自動的に作成され、Snap パッケージの dotnet
コマンドにマップされます。
次の表に、インストールできるパッケージ チャネルを示します。
.NET バージョン | Snap パッケージまたはチャネル |
---|---|
9 (STS) | *まだ利用できません |
8 (LTS) | 8.0/stable lts/stable |
7 (STS) | 7.0/stable (サポート対象外) |
6 (LTS) | 6.0/stable (サポート対象外) |
5 | 5.0/stable (サポート対象外) |
3.1 | 3.1/stable (サポート対象外) |
2.1 | 2.1/stable (サポート対象外) |
2.インストール場所をエクスポートする
DOTNET_ROOT
環境変数は、.NET がインストールされている場所を判断するためにツールによって使用されることがよくあります。 スナップを使用して .NET をインストールすると、この環境変数は構成されません。 プロファイルで DOTNET_ROOT 環境変数を構成する必要があります。 スナップへのパスは、/snap/{package}/current
の形式を使用します。
export DOTNET_ROOT=/snap/dotnet-sdk/current
環境変数を永続的にエクスポートする
上記の export
コマンドは、コマンドを実行したターミナル セッションの環境変数のみを設定します。
シェル プロファイルを編集して、コマンドを永続的に追加することができます。 Linux ではさまざまなシェルを使用でき、それぞれに異なるプロファイルがあります。 次に例を示します。
- Bash シェル: ~/.bash_profile、~/.bashrc
- Korn シェル: ~/.kshrc または .profile
- Z シェル: _~/.zshrc* または .zprofile
シェルの適切なソース ファイルを編集し、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 Snap パッケージによって、dotnet
コマンドの別名が作成されます。 別名が作成されていないか、以前に削除された場合、次のコマンドは別名をマップする方法を示しています。
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
実行可能ファイルが配置されている場所を特定することによって行われます。 Snap がインストールされた .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
次のコマンドを使用して、Snap パッケージへのシンボリック リンクを作成します。
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
TLS/SSL 証明書のエラー
Snap を使用して .NET をインストールする場合、一部のディストリビューションで .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 | 場所 |
---|---|
Fedora | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
OpenSUSE | /etc/ssl/ca-bundle.pem |
Solus | /etc/ssl/certs/ca-certificates.crt |
関連するコンテンツ
.NET