CentOS 支持 .NET。 本文介绍如何在 CentOS 上安装 .NET。
如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。
如果已安装 SDK 或运行时,请使用 dotnet --list-sdks
和 dotnet --list-runtimes
命令查看安装了哪些版本。 有关详细信息,请参阅如何检查是否已安装 .NET。
重要
仅在 x64 体系结构上支持包管理器安装。 对于 ARM 等其他体系结构,必须通过其他一些方式安装 .NET,例如,通过 Snap 和安装程序脚本进行安装,或通过手动提取二进制文件进行安装。
有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:
- 或者,通过 Snap 安装 .NET。
- 或者,通过 脚本安装 .NET。
- 手动安装 .NET
支持的分发
下表列出了 CentOS 7 和 CentOS 8 上当前受支持的 .NET 版本。 这些版本在 .NET 版本达到支持终止日期或 CentOS 版本不再受支持之前仍受支持。
- ✔️ 指示 CentOS 或 .NET 版本仍受支持。
- ❌ 指示 CentOS 或 .NET 版本在该 CentOS 版本上不受支持。
- 当 CentOS 版本和 .NET 版本都有 ✔️ 时,将支持该 OS 和 .NET 组合。
CentOS | .NET Core 3.1 | .NET 5 | .NET 6 |
---|---|---|---|
✔️ 7 | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 |
✔️ 8 | ✔️ 3.1 | ✔️ 5.0 | ❌ 6.0 |
警告
*CentOS 8 将于 2021 年 12 月 31 日提前结束生命周期 (EOL)。 有关详细信息,请参阅官方 CentOS Linux EOL 页。 因此,CentOS Linux 8 不支持 .NET 6。
以下 .NET 版本 ❌ 不再受到支持。 这些版本的下载仍保持发布状态:
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
重要
仅在 x64 体系结构上支持包管理器安装。 对于 ARM 等其他体系结构,必须通过其他一些方式安装 .NET,例如,通过 Snap 和安装程序脚本进行安装,或通过手动提取二进制文件进行安装。
有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:
- 或者,通过 Snap 安装 .NET。
- 或者,通过 脚本安装 .NET。
- 手动安装 .NET
安装预览版本
包管理器中未提供 .NET 的预览版和候选发布版本。 可通过下面其中一种方式安装 .NET 的预览版和候选发布版本:
删除预览版本
使用包管理器管理 .NET 安装时,如果之前安装了预览版本,则可能会遇到冲突。 包管理器可能会将非预览版本解释为 .NET 的较早版本。 若要安装非预览版本,需要首先卸载预览版本。 有关如何卸载 .NET 的详细信息,请参阅如何删除 .NET 运行时和 SDK。
CentOS 7 ✔️
安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:
Bash复制
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
安装 SDK
.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
Bash复制
sudo yum install dotnet-sdk-6.0
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
Bash复制
sudo yum install aspnetcore-runtime-6.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-6.0
替换为 dotnet-runtime-6.0
:
Bash复制
sudo yum install dotnet-runtime-6.0
CentOS 8 ✔️
警告
*CentOS 8 将于 2021 年 12 月 31 日提前结束生命周期 (EOL)。 有关详细信息,请参阅官方 CentOS Linux EOL 页。 因此,CentOS Linux 8 不支持 .NET 6。
.NET 5 在 CentOS 8 的默认包存储库中提供。
安装 SDK
.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
Bash复制
sudo dnf install dotnet-sdk-5.0
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
Bash复制
sudo dnf install aspnetcore-runtime-5.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-5.0
替换为 dotnet-runtime-5.0
:
Bash复制
sudo dnf install dotnet-runtime-5.0
如何安装其他版本
.NET 的所有版本均可从 .NET Downloads (Linux, macOS, and Windows) 下载,但需要.NET Downloads (Linux, macOS, and Windows)。 可尝试使用包管理器安装不同版本的 .NET。 但请求的版本可能不可用。
添加到包管理器源的包以可改动的格式命名,例如:{product}-{type}-{version}
。
-
product
要安装的 .NET 产品的类型。 有效选项是:- dotnet
- aspnetcore
-
type
选择 SDK 或运行时。 有效选项是:- SDK
- Runtime — 运行时
-
version
要安装的 SDK 或运行时的版本。 本文始终提供最新支持的版本的说明。 有效选项为任何已发布的版本,例如:- 5.0
- 3.1
- 3.0
- 2.1
尝试下载的 SDK/运行时可能不适用于 Linux 发行版。 有关受支持的发行版列表,请参阅在 Linux 上安装 .NET。
示例
- 安装 ASP.NET Core 5.0 运行时:
aspnetcore-runtime-5.0
- 安装 .NET Core 2.1 运行时:
dotnet-runtime-2.1
- 安装 .NET 5 SDK:
dotnet-sdk-5.0
- 安装 .NET Core 3.1 SDK:
dotnet-sdk-3.1
缺少包
如果包版本组合无效,则它不可用。 例如,未安装 ASP.NET Core SDK,所有 SDK 组件都包含在 .NET SDK 中。 aspnetcore-sdk-2.2
的值不正确,应为 dotnet-sdk-2.2
。 有关 .NET 支持的 Linux 发行版的列表,请参阅 .NET 依赖项和要求。
包管理器疑难解答
本部分提供有关使用包管理器安装 .NET 时可能会遇到的常见错误的信息。
找不到包
重要
仅在 x64 体系结构上支持包管理器安装。 对于 ARM 等其他体系结构,必须通过其他一些方式安装 .NET,例如,通过 Snap 和安装程序脚本进行安装,或通过手动提取二进制文件进行安装。
有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:
- 或者,通过 Snap 安装 .NET。
- 或者,通过 脚本安装 .NET。
- 手动安装 .NET
未能提取
安装 .NET 包时,可能会看到类似于 signature verification failed for file 'repomd.xml' from repository 'packages-microsoft-com-prod'
的错误。 一般而言,此错误表示 .NET 的包源正在通过更新的包版本进行更新,应稍后重试。 升级期间,包源的不可用时间不应超过 2 小时。 如果持续收到此错误超过 2 小时,请在 Issues · dotnet/core · GitHub 中提交问题。
与缺少 fxr
、libhostfxr.so
或 FrameworkList.xml
相关的错误
有关如何解决这些问题的详细信息,请参阅排查 、libhostfxr.so
和 FrameworkList.xml
错误。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET Core 或发布自包含的应用,则需要确保已安装以下库:
- krb5-libs
- libicu
- openssl-libs
- zlib
如果目标运行时环境的 OpenSSL 版本为1.1 或更高版本,则需要安装 compat-openssl10。
有关依赖项的详细信息,请参阅独立式 Linux 应用。
对于使用 System.Drawing.Common 程序集的 .NET Core 应用,还需要以下依赖项:
-
警告
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。 有关详细信息,请参阅 Download - Stable | Mono。