RHEL と CentOS Stream に .NET SDK または .NET Runtime をインストールする

重要

.NET 8 は 2023 年 11 月 14 日にリリースされました。 このパッケージがパッケージ マネージャー フィードに表示されるまでに時間がかかる場合があります。

.NET は Red Hat Enterprise Linux (RHEL) でサポートされています。 この記事では、RHEL と CentOS Stream に .NET をインストールする方法について説明します。

.NET アプリを開発する場合は、SDK をインストールします (これにはランタイムが含まれます)。 または、アプリを実行する必要があるだけの場合は、ランタイムをインストールします。 ランタイムをインストールする場合は、ASP.NET Core ランタイムをインストールすることをお勧めします。これには .NET と ASP.NET の Core ランタイムの両方が含まれているためです。

dotnet --list-sdks および dotnet --list-runtimes コマンドを使用して、インストールされているバージョンを確認します。 詳細については、.NET が既にインストールされていることを確認する方法に関するページを参照してください。

ご利用の Red Hat サブスクリプションを登録する

Red Hat から RHEL に .NET をインストールするには、まず、Red Hat Subscription Manager を使用して登録する必要があります。 ご利用のシステムでまだこれを行っていない場合、または不明な場合は、.NET 向けの Red Hat の製品ドキュメントを参照してください。

重要

これは CentOS Stream には適用されません。

サポートされているディストリビューション

RHEL と CentOS Stream の両方で現在サポートされている .NET のリリースの一覧は、次の表のとおりです。 これらのバージョンは、.NET のバージョンがサポート終了になるか、Linux のディストリビューションがサポート終了になるまでサポートされます。

配布 .NET
RHEL 9 (9.1) 8、7、6
RHEL 8 (8.7) 8、7、6
RHEL 7 6
CentOS Stream 9 8、7、6
CentOS Stream 8 8、7、6

次のバージョンの .NET は、❌ サポート対象外となりました。

  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

プレビュー バージョンをインストールする

.NET のプレビューおよびリリース候補バージョンは、パッケージ リポジトリでは入手できません。 .NET のプレビューとリリース候補は、次のいずれかの方法でインストールできます。

プレビュー バージョンの削除

パッケージ マネージャーを使用して .NET のインストールを管理しているとき、以前、プレビュー リリースをインストールしている場合、競合が発生することがあります。 パッケージ マネージャーは、プレビューではないリリースを .NET の以前のバージョンとして解釈することがあります。 プレビューではないリリースをインストールするには、最初にプレビュー バージョンをアンインストールします。 .NET をアンインストールする方法の詳細については、「.NET ランタイムと SDK を削除する方法」を参照してください。

RHEL 9

.NET は、RHEL 9 用の AppStream リポジトリに含まれています。

重要

.NET 8 は 2023 年 11 月 14 日にリリースされました。 このパッケージがパッケージ マネージャー フィード内に表示されるまでに時間がかかる場合があります。

SDK のインストール

.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。

sudo dnf install dotnet-sdk-8.0

ランタイムをインストールする

ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ターミナルで、次のコマンドを実行します。

sudo dnf install aspnetcore-runtime-8.0

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET ランタイムをインストールできます。それには、前のコマンドの aspnetcore-runtime-8.0dotnet-runtime-8.0 で置き換えます。

sudo dnf install dotnet-runtime-8.0

RHEL 8

.NET は、RHEL 8 用の AppStream リポジトリに含まれています。

重要

.NET 8 は 2023 年 11 月 14 日にリリースされました。 このパッケージがパッケージ マネージャー フィード内に表示されるまでに時間がかかる場合があります。

SDK のインストール

.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。

sudo dnf install dotnet-sdk-8.0

ランタイムをインストールする

ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ターミナルで、次のコマンドを実行します。

sudo dnf install aspnetcore-runtime-8.0

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET ランタイムをインストールできます。それには、前のコマンドの aspnetcore-runtime-8.0dotnet-runtime-8.0 で置き換えます。

sudo dnf install dotnet-runtime-8.0

RHEL 7 ❌ .NET 8

.NET 8 は RHEL 7 と互換性がないため、機能しません。

RHEL 7 ❌ .NET 7

.NET 7 は、RHEL 7 では正式にはサポートされていません。 .NET 7 をインストールするには、「インストール スクリプトを使用するか、バイナリを抽出して Linux に .NET をインストールする」 を参照してください。

RHEL 7 ✔️ .NET 6

次のコマンドでは、scl-utils パッケージがインストールされます。

sudo yum install scl-utils

SDK のインストール

.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。

subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum install rh-dotnet60 -y
scl enable rh-dotnet60 bash

Red Hat では、rh-dotnet60 を永続的に有効にすることは推奨されません。他のプログラムに影響を与える可能性があるためです。 rh-dotnet を永続的に有効にする場合は、~/.bashrc ファイルに次の行を追加します。

source scl_source enable rh-dotnet60

ランタイムのインストール

.NET ランタイムを使用すると、ランタイムを含まない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET Core の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ご利用のターミナルで、次のコマンドを実行します。

subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum install rh-dotnet60-aspnetcore-runtime-6.0 -y
scl enable rh-dotnet60 bash

Red Hat では、rh-dotnet60 を永続的に有効にすることは推奨されません。他のプログラムに影響を与える可能性があるためです。 rh-dotnet60 を永続的に有効にする場合は、~/.bashrc ファイルに次の行を追加します。

source scl_source enable rh-dotnet60

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET ランタイムをインストールできます。それには、前のコマンドの rh-dotnet60-aspnetcore-runtime-6.0rh-dotnet60-dotnet-runtime-6.0 で置き換えます。

CentOS Stream 9 ✔️

.NET は、CentOS Stream 9 用の AppStream リポジトリに含まれています。

SDK のインストール

.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。

sudo dnf install dotnet-sdk-8.0

ランタイムをインストールする

ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ターミナルで、次のコマンドを実行します。

sudo dnf install aspnetcore-runtime-8.0

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET ランタイムをインストールできます。それには、前のコマンドの aspnetcore-runtime-8.0dotnet-runtime-8.0 で置き換えます。

sudo dnf install dotnet-runtime-8.0

CentOS Stream 8 ✔️

Microsoft リポジトリを使用して .NET をインストールします:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-8.0

依存関係

パッケージ マネージャーを使用してインストールする場合、次のライブラリが自動的にインストールされます。 ただし、手動で .NET をインストールする場合、または自己完結型アプリを公開する場合は、次のライブラリがインストールされていることを確認する必要があります。

  • krb5-libs
  • libicu
  • openssl-libs
  • zlib

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

依存関係は yum install コマンドを使用してインストールできます 次のスニペットは、libicu ライブラリのインストールを示しています。

sudo yum install libicu

依存関係の詳細については、「Self-contained Linux applications」(自己完結型 Linux アプリケーション) をご覧ください。

.NET アプリで System.Drawing.Common アセンブリを使用している場合、libgdiplus もインストールする必要があります。 System.Drawing.Common は Linux でサポートされなくなったため、これは .NET 6 のみで機能し、System.Drawing.EnableUnixSupport ランタイム構成スイッチを設定する必要があります。

最新バージョンの libgdiplus をインストールするには、システムに Mono リポジトリを追加します。

その他のバージョンをインストールする方法

.NET の他のリリースをインストールするために必要な手順については、.NET 向けの Red Hat のドキュメントを参照してください。

パッケージ マネージャーのトラブルシューティング

このセクションでは、パッケージ マネージャーを使用して .NET または .NET Core をインストールするときに発生する可能性のある一般的なエラーについて説明します。

これらの問題の解決方法の詳細については、「fxrlibhostfxr.soFrameworkList.xml エラーのトラブルシューティングを行う」を参照してください。

次の手順