在 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 6

安装 SDK

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

sudo apk add dotnet6-sdk

安装运行时

通过 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 版本以及支持它们的 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

后续步骤