在 Alpine 上安装 .NET SDK 或 .NET 运行时
Alpine 支持 .NET,本文介绍如何在 Alpine 上安装 .NET。 如果 Alpine 版本不再受到支持,则该版本不再支持 .NET。
如果使用 Docker,请考虑使用 官方的 .NET Docker 映像 ,而不是自行安装 .NET。
如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。
dotnet --list-sdks
使用 和 dotnet --list-runtimes
命令查看已安装的版本。 有关详细信息,请参阅如何检查是否已安装 .NET。
Alpine 包管理器支持安装某些版本的 .NET。 如果 .NET 包不可用,则需要使用以下替代方法之一安装 .NET:
安装 .NET 7
安装 SDK
.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
sudo apk add dotnet7-sdk
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
sudo apk add aspnetcore7-runtime
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore7-runtime
替换为 dotnet7-runtime
:
sudo apk add dotnet7-runtime
安装 .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 | .NET |
---|---|
3.17 | 7, 6 |
3.16 | 7, 6 |
3.15 | 7, 6 |
3.14 | 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 版本及其支持的 Alpine 体系结构。 这些版本一直受支持,直到 .NET 版本达到支持终止 或 支持 Alpine 的体系结构#。 请注意,Microsoft 仅x86_64
正式支持 、armv7
。 aarch64
分发维护人员支持其他体系结构,可以使用包管理器进行安装 apk
。
体系结构 | .NET 6 | .NET 7 |
---|---|---|
x86_64 | ✔️ 3.16 | ✔️ 3.17 |
x86 | ❌ | ❌ |
aarch64 | ✔️ 3.16 | ✔️ 3.17 |
armv7 | ✔️ 3.16 | ✔️ 3.17 |
armhf | ❌ | ❌ |
s390x | ✔️ 3.17 | ✔️ 3.17 |
ppc64le | ❌ | ✔️ 边缘 |
riscv64 | ❌ | ❌ |
安装预览版本
.NET 的预览版和候选版本在包存储库中不可用。 可通过下面其中一种方式安装 .NET 的预览版和候选发布版本:
删除预览版本
使用包管理器管理 .NET 安装时,如果之前安装了预览版本,则可能会遇到冲突。 包管理器可能会将非预览版本解释为 .NET 的较早版本。 若要安装非预览版本,需要首先卸载预览版本。 有关如何卸载 .NET 的详细信息,请参阅如何删除 .NET 运行时和 SDK。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- icu-libs
- krb5-libs
- libgcc
- libgdiplus(.NET 应用需要 System.Drawing.Common 程序集时)
- libintl
- libssl1.1
- libstdc++
- zlib
若要安装必需项,请运行以下命令:
apk add bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib
如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置System.Drawing.EnableUnixSupport
运行时配置开关。
若要在 Alpine 3.16 或更高版本上安装 libgdiplus (较旧版本不包含包) ,请运行:
apk add libgdiplus