この記事では、インストール スクリプトを使用するかバイナリを抽出して、.NET SDK または .NET ランタイムを Linux にインストールする方法について説明します。 組み込みのパッケージ マネージャーをサポートするディストリビューションの一覧については、「Install .NET on Linux」を参照してください。
.NET アプリを開発する場合は、SDK (ランタイムを含む) をインストールします。 または、アプリを実行する必要があるだけの場合は、ランタイムをインストールします。 ランタイムをインストールする場合は、ASP.NET Core Runtime .NET ランタイムと ASP.NET Core ランタイムの両方が含まれるようにインストールすることをお勧めします。
dotnet --list-sdks および dotnet --list-runtimes コマンドを使用して、インストールされているバージョンを確認します。 詳細については、「.NETが既にインストールされていることを確認する方法を参照してください。
.NET リリース
サポートされるリリースには、長期サポート (LTS) と Standard Term Support (STS) の 2 種類があります。 すべてのリリースの品質は同じです。 唯一の違いは、サポート期間の長さです。 LTS リリースでは、3 年間無料のサポートとパッチが提供されます。 STS リリースでは、2 年間無料のサポートとパッチが提供されます。 詳細については、「.NET サポート ポリシー」を参照してください。
次の表に、.NET (および .NET Core) の各バージョンのサポート状態を示します。
| ✔️ サポートされている | ❌ サポート対象外 |
|---|---|
| 10 (LTS) | 7 |
| 9 (STS) | 6 |
| 8 (LTS) | 5 |
| 3.1 | |
| 3.0 | |
| 2.2 | |
| 2.1 | |
| 2.0 | |
| 1.1 | |
| 1 |
依存関係
.NETをインストールするときに、手動でインストールする場合など、特定の依存関係がインストールされない可能性があります。 次の一覧では、Microsoft でサポートされ、インストールが必要になる可能性がある依存関係がある Linux ディストリビューションについて詳しく説明します。 詳細については、ディストリビューションのページを確認してください。
依存関係に関する一般的な情報については、「自己完結型 Linux アプリケーション」を参照してください。
RPM の依存関係
ディストリビューションが以前に一覧表示されておらず、RPM ベースの場合は、次の依存関係が必要になることがあります。
- glibc
- libgcc
- CA証明書
- openssl-libs
- libstdc++
- libicu
- tzdata
- krb5-libs
DEB の依存関係
ディストリビューションが以前に一覧表示されておらず、debian ベースの場合は、次の依存関係が必要になる場合があります。
- libc6
- libgcc1
- libgssapi-krb5-2
- libicu70
- libssl3
- libstdc++6
- zlib1g
スクリプトでのインストール
dotnet-install スクリプトは、SDK およびランタイムのインストールの自動化および管理者以外によるインストールのために使用されます。 スクリプトは https://dot.net/v1/dotnet-install.sh からダウンロードできます。この方法で.NETがインストールされている場合は、Linux ディストリビューションに必要な依存関係をインストールする必要があります。 特定の Linux ディストリビューションの Install .NET on Linux に関する記事のリンクを使用します。
重要
スクリプトを実行するには Bash が必要です。
このスクリプトは wget を使用してダウンロードできます。
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
または、 curlを使用します。
curl -L https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
このスクリプトを実行する前に、このスクリプトを実行可能ファイルとして実行する許可を付与してください。
chmod +x ./dotnet-install.sh
このスクリプトは、既定で最新の long term support (LTS) SDK バージョン (.NET 10) をインストールします。 最新のリリース ((LTS) バージョンではない場合がある) をインストールするには、--version latest パラメータを使用します。
./dotnet-install.sh --version latest
SDK の代わりにランタイム.NETインストールするには、--runtime パラメーターを使用します。
./dotnet-install.sh --version latest --runtime aspnetcore
特定のバージョンを示す --channel パラメータを指定することで、特定のメジャー バージョンをインストールすることができます。 次のコマンドは、9.0 SDK .NETインストールします。
./dotnet-install.sh --channel 9.0
詳細については、「dotnet-install スクリプト リファレンス」をご覧ください。
コマンド ラインで.NETを有効にするには、「システム全体の環境変数の設定を参照してください。
.NET CLI の使用方法については、.NET CLI の概要を参照してください。
手動インストール
パッケージ マネージャーの代わりに、SDK とランタイムをダウンロードして手動でインストールすることもできます。 手動インストールは、継続的インテグレーション テストの一環として、またはサポートされていない Linux ディストリビューションで、よく使用されます。 開発者またはユーザーの場合は、パッケージ マネージャーを使用することをお勧めします。
次のいずれかのサイトから SDK またはランタイムのバイナリ リリースをダウンロードします。 .NET SDK には、対応するランタイムが含まれています。
ダウンロードしたファイルを抽出し、export コマンドを使用して、DOTNET_ROOTを抽出したフォルダーの場所に設定し、.NETが PATH にあることを確認します。
DOTNET_ROOT をエクスポートすると、.NET CLI コマンドをターミナルで使用できるようになります。 .NET環境変数の詳細については、「.NET SDK および CLI 環境変数を参照してください。
異なるバージョンの.NETを同じフォルダーに抽出できます。このフォルダーは並べて共存します。
例
次のコマンドでは、Bash を使用して環境変数 DOTNET_ROOT を現在の作業ディレクトリに設定し、その後に .dotnet を設定しています。 そのディレクトリが存在しない場合は作成されます。
DOTNET_FILE 環境変数は、インストールする.NETバイナリ リリースのファイル名です。 このファイルは、DOTNET_ROOT ディレクトリに抽出されます。
DOTNET_ROOT ディレクトリとその tools サブディレクトリの両方が PATH 環境変数に追加されます。
重要
これらのコマンドを実行する場合は、DOTNET_FILE 値をダウンロードした.NET バイナリの名前に変更してください。
DOTNET_FILE=dotnet-sdk-9.0.306-linux-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet
mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
同じフォルダーに複数のバージョンの.NETをインストールできます。
.NETは、HOME 変数または ~ パスによって識別されるホーム ディレクトリにインストールすることもできます。
export DOTNET_ROOT=$HOME/.dotnet
.NET CLI の使用方法については、.NET CLI の概要を参照してください。
ダウンロードしたバイナリを検証する
インストーラーまたはバイナリ リリースをダウンロードした後、ファイルを検証して、変更されたり破損したりしていないことを確認します。 コンピューターでチェックサムを検証し、ダウンロード Web サイトで報告されていたものと比較できます。
公式ダウンロード ページからファイルをダウンロードするときに、ファイルのチェックサムがテキスト ボックスに表示されます。 [コピー] ボタンを選択すると、クリップボードにチェックサム値がコピーされます。
sha512sum コマンドを使用して、ダウンロードしたファイルのチェックサムを出力します。 たとえば、次のコマンドは 、dotnet-sdk-9.0.306-linux-x64.tar.gz ファイルのチェックサムを報告します。
$ sha512sum dotnet-sdk-9.0.306-linux-x64.tar.gz
bbb6bdc3c8048e7cc189759b406257839e7d4bd6b8b1ba4bcdaeea8f92340e6855231043dd73f902130ca5357af72b810bb51a4da4d1315a2927ff85f831f1d5 dotnet-sdk-9.0.306-linux-x64.tar.gz
このチェックサムとダウンロード サイトで提供された値を比較します。
チェックサム ファイルを使用して検証する
.NETリリース ノートには、ダウンロードしたファイルの検証に使用できるチェックサム ファイルへのリンクが含まれています。 次の手順では、チェックサム ファイルをダウンロードし、バイナリをインストールして.NETを検証する方法について説明します。
https://github.com/dotnet/core/tree/main/release-notes/9.0#releases のGitHubの.NET 9 のリリース ノート ページには、Releases という名前のセクションが含まれています。 このセクションの表は、各.NET 9 リリースのダウンロード ファイルとチェックサム ファイルにリンクしています。 次の図は、.NET 8 リリース テーブルを参照として示しています。
GitHub リリースノートの .NET 用バージョンテーブル ダウンロードした.NETのバージョンのリンクを選択します。
前のセクションでは、.NET 9.0.10 リリースの SDK 9.0.306 .NET使用しました。
リリース ページでは、.NET ランタイムと .NET SDK のバージョン、およびチェックサム ファイルへのリンクを確認できます。 次の図は、.NET 8 リリース テーブルを参照として示しています。
チェックサム リンクを右クリックし、クリップボードにコピーします。
ターミナルを開きます。
curl -O {link}を使用して、チェックサム ファイルをダウンロードします。次のコマンド内のリンクをコピーしたリンクに置き換えます。
curl -O https://builds.dotnet.microsoft.com/dotnet/checksums/9.0.10-sha.txtチェックサム ファイルと.NETリリース ファイルの両方を同じディレクトリにダウンロードした場合は、
sha512sum -c {file} --ignore-missingコマンドを使用して、ダウンロードしたファイルを検証します。検証に合格すると、OK の状態で出力されたファイルが表示されます。
$ sha512sum -c 9.0.10-sha.txt --ignore-missing dotnet-sdk-9.0.306-linux-x64.tar.gz: OKFAILED とマークされたファイルが表示された場合、ダウンロードしたファイルは無効であり、使用できません。
$ sha512sum -c 9.0.10-sha.txt --ignore-missing dotnet-sdk-9.0.306-linux-x64.tar.gz: FAILED sha512sum: WARNING: 1 computed checksum did NOT match sha512sum: 9.0.10-sha.txt: no file was verified
環境変数をシステム全体に設定する
前のインストール スクリプトを使用した場合、設定された変数は現在のターミナル セッションにのみ適用されます。 それらをシェル プロファイルに追加します。 Linux ではさまざまなシェルを使用でき、それぞれに異なるプロファイルがあります。 次に例を示します。
- Bash シェル: ~/.bash_profile または ~/.bashrc
- Korn シェル: ~/.kshrc または .profile
- Z シェル: ~/.zshrc または .zprofile
シェル プロファイルに次の 2 つの環境変数を設定します。
DOTNET_ROOTこの変数は、
$HOME/.dotnetなど、インストール.NETフォルダーに設定されます。export DOTNET_ROOT=$HOME/.dotnetPATHこの変数には、
DOTNET_ROOTフォルダーとDOTNET_ROOT/toolsフォルダーの両方を含める必要があります。export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
次のステップ
- .NET CLI の概要
- .NET CLI の TAB 補完機能を有効にする方法
Tutorial: .NET
.NET