本文介绍如何在 Debian 上安装.NET。 当 Debian 版本不受支持时,该版本不再支持.NET。 但是,这些说明可能有助于在这些版本上运行.NET,即使它不受支持。
如果要开发.NET应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装运行时,建议安装 ASP.NET Core Runtime,因为它同时包括.NET和 ASP.NET Core运行时。
使用 dotnet --list-sdks 和 dotnet --list-runtimes 命令查看安装的版本。 有关详细信息,请参阅 如何检查是否已安装.NET。
支持的发行版
下表列出了当前支持的.NET版本及其支持的 Debian 版本。 这些版本仍受支持,直到 .NET 版本达到支持终止或 Debian 版本达到生命周期结束。
| Debian | .NET |
|---|---|
| 13 | 10, 9, 8 |
| 12 | 10, 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 13
使用 APT 进行安装可通过几个命令来完成。 在安装.NET之前,请运行以下命令,将Microsoft包签名密钥添加到受信任的密钥列表中,并添加包存储库。
打开终端并运行以下命令:
wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
重要
Microsoft 包源仅发布 x64 和 Arm64 包(.NET 10)。 如果需要在其他架构(如 Arm32)上安装 .NET,请不要通过包管理器从 Microsoft 包源进行安装。 有关安装 .NET without a package manager 的详细信息,请参阅以下文章之一:
安装 SDK
.NET SDK 允许使用 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-10.0
若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
安装运行时
ASP.NET Core运行时允许您运行那些未包含运行时的.NET应用程序。 以下命令安装 ASP.NET Core运行时,这是.NET最兼容的运行时。 在终端中,运行以下命令:
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-10.0
作为 ASP.NET Core 运行时的替代方法,可以安装不包含 ASP.NET Core支持的 .NET Runtime:将上一命令中的 aspnetcore-runtime-10.0 替换为 dotnet-runtime-10.0:
sudo apt-get install -y dotnet-runtime-10.0
若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
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
重要
Microsoft 包源仅发布 x64 和 Arm64 包(.NET 10)。 如果需要在其他架构(如 Arm32)上安装 .NET,请不要通过包管理器从 Microsoft 包源进行安装。 有关安装 .NET without a package manager 的详细信息,请参阅以下文章之一:
安装 SDK
.NET SDK 允许使用 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-10.0
若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
安装运行时
ASP.NET Core运行时允许您运行那些未包含运行时的.NET应用程序。 以下命令安装 ASP.NET Core运行时,这是.NET最兼容的运行时。 在终端中,运行以下命令:
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-10.0
作为 ASP.NET Core 运行时的替代方法,可以安装不包含 ASP.NET Core支持的 .NET Runtime:将上一命令中的 aspnetcore-runtime-10.0 替换为 dotnet-runtime-10.0:
sudo apt-get install -y dotnet-runtime-10.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 版本为不同架构发布包:
- .NET 10:仅限 x64 和 Arm64 包。
- .NET 9:仅限 x64 包。
- .NET 8:仅限 x64 包。
如果需要在其他架构(如 Arm32)上安装 .NET,请不要通过包管理器从 Microsoft 包源进行安装。 有关安装 .NET without a package manager 的详细信息,请参阅以下文章之一:
找不到\无法安装某些包
如果收到类似于“找不到包 {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}
如果使用的是低于 12 的 Debian 版本,请尝试以下命令:
# 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或发布自包含应用,则需要确保已安装这些库:
13.x
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu72
- libssl3
- libstdc++6
- zlib1g
12.x
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu72
- libssl3
- libstdc++6
- zlib1g
其他说明
可以使用 apt install 命令安装依赖项。 以下代码片段演示了如何安装 libc6 库:
sudo apt install libc6
后续步骤
- .NET CLI 概述
- 如何为 .NET CLI 启用 TAB 完成
Tutorial:使用 .NET