在 Alpine 上安装 .NET SDK 或 .NET 运行时

重要

.NET 8 已于 2023 年 11 月 14 日发布。 可能需要一段时间,包才会显示在包管理器源中。

.NET 在 Alpine 上受支持,本文介绍了如何在 Alpine 上安装 .NET。 如果 Alpine 版本不再受到支持,则该版本不再支持 .NET。

如果正在使用 Docker,请考虑使用官方的 .NET Docker 映像,而不是自行安装 .NET。

如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。

使用 dotnet --list-sdksdotnet --list-runtimes 命令查看安装的版本。 有关详细信息,请参阅如何检查是否已安装 .NET

Alpine 包管理器支持安装一些版本的 .NET。 如果 .NET 包不可用,需要使用以下替代方法之一安装 .NET:

安装 .NET 8

.NET 8 在 Alpine 包存储库的默认分支中尚不可用。 请使用 edge 分支安装 .NET 8。 或者使用以下其中一种方式来安装 .NET 8:

若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述

安装 .NET 6

安装 SDK

.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

sudo apk add dotnet6-sdk

若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

sudo apk add aspnetcore6-runtime

作为 ASP.NET Core 运行时的一种替代方法,可以安装不包含 ASP.NET Core 支持的 .NET 运行时。 要安装它,请将上一命令中的aspnetcore6-runtime替换为dotnet6-runtime

sudo apk add dotnet6-runtime

若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述

支持的发行版

下表列出了当前支持的 .NET 版本以及支持它们的 Alpine 版本。 这些版本在 .NET 到达支持终止日期Alpine 的版本到达有效期之前仍受支持。

Alpine 支持版本 在包管理器中可用
3.20 8.0、6.0 8.0、6.0
3.19 8.0、6.0 7.0、6.0
3.18 8.0、6.0 7.0、6.0
3.17 8.0、6.0 7.0、6.0

以下 .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 体系结构以及支持它们的 Alpine 版本。 这些版本在.NET 到达支持终止日期Alpine 的体系结构受支持#之前仍受支持。 请注意,Microsoft 仅正式支持x86_64armv7aarch64。 其他体系结构由分发维护人员支持,并且可以使用apk包管理器进行安装。

体系结构 .NET 6 .NET 8
x86_64 3.16、3.17、3.18、3.19、3.20 3.17、3.18、3.19、3.20
x86
aarch64 3.16、3.17、3.18、3.19、3.20 3.17、3.18、3.19、3.20
armv7 3.16、3.17、3.18、3.19、3.20 3.17、3.18、3.19、3.20
armhf
s390x 3.17 3.17
ppc64le
riscv64

安装预览版本

包存储库中未提供 .NET 的预览版和候选发布版本。 可通过下面其中一种方式安装 .NET 的预览版和候选发布版本:

删除预览版本

使用包管理器管理 .NET 安装时,如果之前安装了预览版本,则可能会遇到冲突。 包管理器可能会将非预览版本解释为 .NET 的较早版本。 若要安装非预览版本,需要首先卸载预览版本。 有关如何卸载 .NET 的详细信息,请参阅如何删除 .NET 运行时和 SDK

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

3.18+

  • ca-certificates-bundle
  • libgcc
  • libssl3
  • libstdc++
  • zlib
  • libgdiplus(.NET 应用需要 System.Drawing.Common 程序集时)

3.15 - 3.17

  • icu-libs
  • krb5-libs
  • libgcc
  • libintl
  • libssl3
  • libstdc++
  • zlib
  • libgdiplus(.NET 应用需要 System.Drawing.Common 程序集时)

使用 apk add 命令安装依赖项。

如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关

要安装 libgdiplus,请运行:

apk add libgdiplus

后续步骤