在 RHEL 和 CentOS Stream 上安装 .NET SDK 或 .NET 运行时
重要
.NET 8 已于 2023 年 11 月 14 日发布。 包出现在包管理器源中可能需要一段时间。
Red Hat Enterprise Linux (RHEL) 支持 .NET。 本文介绍如何在 RHEL 和 CentOS Stream 上安装 .NET。
如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。
使用 dotnet --list-sdks
和 dotnet --list-runtimes
命令查看安装的版本。 有关详细信息,请参阅如何检查是否已安装 .NET。
注册 Red Hat 订阅
若要在 RHEL 上从 Red Hat 安装 .NET,首先需要使用 Red Hat 订阅管理器进行注册。 如果未在系统上完成此操作,或者不确定是否完成了此操作,请参阅适用于 .NET 的 Red Hat 产品文档。
重要事项
这不适用于 CentOS Stream。
支持的发行版
下表列出了 RHEL 和 CentOS Stream 上当前受支持的 .NET 版本。 这些版本在 .NET 达到支持终止日期或 Linux 发行版不再受支持之前仍受支持。
分布 | .NET |
---|---|
RHEL 9 (9.1) | 8.0、6.0 |
RHEL 8 (8.7) | 8.0、6.0 |
RHEL 7 | 6.0 |
CentOS Stream 9 | 8.0、6.0 |
CentOS Stream 8 | 8.0、6.0 |
不再支持 CentOS Linux |
以下 .NET 版本 ❌ 不再受到支持:
- .NET 7
- .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
要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
sudo dnf install aspnetcore-runtime-8.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0
替换为 dotnet-runtime-8.0
:
sudo dnf install dotnet-runtime-8.0
要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
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
要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
sudo dnf install aspnetcore-runtime-8.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0
替换为 dotnet-runtime-8.0
:
sudo dnf install dotnet-runtime-8.0
要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
RHEL 7 ❌ .NET 8
.NET 8 与 RHEL 7 不兼容,因此无法工作。
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 CLI,请参阅 .NET CLI 概述。
安装运行时
通过 .NET 运行时,可以运行使用 .NET 开发且未包含运行时的应用。 以下命令安装 ASP.NET Core 运行时,这是与 .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.0
替换为 rh-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
要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
sudo dnf install aspnetcore-runtime-8.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0
替换为 dotnet-runtime-8.0
:
sudo dnf install dotnet-runtime-8.0
要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
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 CLI,请参阅 .NET CLI 概述。
CentOS Linux 在哪里
CentOS Linux 不再支持 .NET。 截至 2024 年 6 月 30 日,CentOS Linux 生命周期已结束。 有关详细信息,请参阅 CentOS Stream 8 和 CentOS Linux 7 的结束日期即将到来。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- krb5-libs
- libicu
- openssl-libs
- zlib
如果目标运行时环境的 OpenSSL 版本为 1.1 或更高版本,则需要安装 compat-openssl10
。
可以使用 yum install
命令安装依赖项。 以下代码片段演示了如何安装 libicu
库:
sudo yum install libicu
有关依赖项的详细信息,请参阅独立式 Linux 应用。
如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport
运行时配置开关。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。
如何安装其他版本
有关安装其他版本的 .NET 所需的步骤,请参阅适用于 .NET 的 Red Hat 文档。
包管理器疑难解答
本部分提供有关使用包管理器安装 .NET 或 .NET Core 时可能会遇到的常见错误的信息。
与缺少 fxr
、libhostfxr.so
或 FrameworkList.xml
相关的错误
有关如何解决这些问题的详细信息,请参阅排查 fxr
、libhostfxr.so
和 FrameworkList.xml
错误。