インストール スクリプトを使用するか、バイナリを抽出して 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) 5
7 (STS) 3.1
6 (LTS) 3.0
2.2
2.1
2.0
1.1
1

依存関係

.NET をインストールするときに、特定の依存関係がインストールされない可能性があります (手動インストールのときなど)。 次の一覧に、Microsoft によってサポートされていて、インストールが必要な可能性のある依存関係がある Linux ディストリビューションの詳細を示します。 詳細については、ディストリビューションのページを確認してください。

依存関係に関する一般的な情報については、「自己完結型 Linux アプリケーション」を参照してください。

RPM の依存関係

お使いのディストリビューションが前の一覧になく、RPM ベースの場合は、次の依存関係が必要になることがあります。

  • krb5-libs
  • libicu
  • openssl-libs

ターゲット ランタイム環境の OpenSSL バージョンが 1.1 以降である場合は、compat-openssl10 をインストールします。

DEB の依存関係

お使いのディストリビューションが前の一覧になく、Debian ベースの場合は、次の依存関係が必要になることがあります。

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu67
  • libssl1.1
  • 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 を有効にするには、「環境変数をシステム全体に設定する」を参照してください。

手動インストール

パッケージ マネージャーの代わりに、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

ダウンロードしたバイナリを検証する

インストーラーをダウンロードした後、ファイルを検証して、変更されたり破損したりしていないことを確認します。 コンピューターでチェックサムを検証し、ダウンロード Web サイトで報告されていたものと比較できます。

公式ダウンロード ページからインストーラーまたはバイナリをダウンロードするときに、ファイルのチェックサムが表示されます。 [コピー] ボタンを選択すると、クリップボードにチェックサム値がコピーされます。

The .NET download page with checksum

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 インストール バイナリを検証する方法について説明しています。

  1. GitHub (https://github.com/dotnet/core/tree/main/release-notes/8.0) にある .NET 8 のリリース ノート ページには、Releases という名前のセクションが含まれています。 このセクションの表は、各 .NET 8 リリースのダウンロード ファイルとチェックサム ファイルにリンクされています。

    The github release notes version table for .NET

  2. ダウンロードした .NET のバージョンのリンクを選択します。 前のセクションでは、.NET 8.0.0 リリースに含まれる .NET SDK 8.0.100 を使用しました。

  3. リリース ページでは、.NET ランタイムと .NET SDK のバージョン、およびチェックサム ファイルへのリンクを確認できます。

    The download table with checksums for .NET

  4. チェックサム ファイルへのリンクをコピーします。

  5. 次のスクリプトを使用しますが、リンクを置き換えて適切なチェックサム ファイルをダウンロードします。

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. 同じディレクトリにダウンロードされたチェックサム ファイルと .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
    

次のステップ