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