在 Debian 上安装 .NET SDK 或 .NET 运行时
本文介绍如何在 Debian 上安装 .NET。 如果 Debian 版本不受支持,则该版本不再支持 .NET。 不过,可以按照这些说明在这些版本上运行 .NET,即使它不受支持。
如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。
使用 dotnet --list-sdks
和 dotnet --list-runtimes
命令查看安装的版本。 有关详细信息,请参阅如何检查是否已安装 .NET。
重要
使用包管理器从 Microsoft 包源安装 .NET 仅支持 x64 体系结构。 Microsoft 包源不支持其他体系结构,如 Arm。
有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:
支持的发行版
下表列出了当前支持的 .NET 版本以及支持它们的 Debian 版本。 这些版本在 .NET 版本达到支持终止日期或 Debian 的版本达到生命周期之前仍受支持。
Debian | .NET |
---|---|
12 | 9, 8 |
以下 .NET 版本 ❌ 不再受到支持:
- .NET 7
- .NET 6
- .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。
Debian 12
使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。
打开终端并运行以下命令:
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
安装 SDK
.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-9.0
若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-9.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-9.0
替换为 dotnet-runtime-9.0
:
sudo apt-get install -y dotnet-runtime-9.0
若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
使用 APT 更新 .NET
当新的修补程序版本适用于 .NET 时,只需使用以下命令通过 APT 进行升级:
sudo apt-get update
sudo apt-get upgrade
如果安装 .NET 后已升级过 Linux 分发版,可能需要重新配置 Microsoft 包存储库。 运行当前分发版本的安装说明,升级到相应的包存储库以进行 .NET 更新。
疑难解答
本部分提供有关使用 APT 安装 .NET 时可能会遇到的常见错误的信息。
找不到包
重要
使用包管理器从 Microsoft 包源安装 .NET 仅支持 x64 体系结构。 Microsoft 包源不支持其他体系结构,如 Arm。
有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:
找不到\无法安装某些包
如果收到类似于“找不到包 {dotnet-package}”或“无法安装某些包”的错误消息,请运行以下命令。
以下命令组中有两个占位符。
{dotnet-package}
此项表示要安装的 .NET 包,如aspnetcore-runtime-8.0
。 它在以下sudo apt-get install
命令中使用。
首先,尝试清除包列表:
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
然后,再次尝试安装 .NET。 如果这不起作用,可使用以下命令运行手动安装:
如果使用的是 Debian 12 或更高版本,请尝试以下命令:
# Get OS version info which adds the $ID and $VERSION_ID variables
source /etc/os-release
# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
# Move the key to the appropriate place
sudo mv microsoft.asc.gpg $(cat /etc/apt/sources.list.d/microsoft-prod.list | grep -oP "(?<=signed-by=).*(?=\])")
# Update packages and install .NET
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
如果使用的是 Debian 12 之前的版本,请尝试以下命令:
# Define the OS version, name, and codename
source /etc/os-release
# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
# Set ownership
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
# Update packages and install .NET
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
未能提取
安装 .NET 包时,可能会看到类似于 Failed to fetch ... File has unexpected size ... Mirror sync in progress?
的错误。 此错误表示 .NET 的包源正在通过更新的包版本进行更新,应稍后重试。 升级期间,包源的不可用时间不应超过 30 分钟。 如果持续收到此错误超过 30 分钟,请在 https://github.com/dotnet/core/issues 中提交问题。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
12.x
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu72
- libssl3
- libstdc++6
- zlib1g
11.x
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu67
- libssl1.1
- libstdc++6
- zlib1g
10.x
- libc6
- libgcc1
- libgssapi-krb5-2
- libicu63
- libssl1.1
- libstdc++6
- zlib1g
其他说明
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 libc6
库:
sudo apt install libc6
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。