在 Ubuntu 上安装 .NET SDK 或 .NET 运行时
本文讨论如何在 Ubuntu 上安装 .NET。
如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。
使用 dotnet --list-sdks
和 dotnet --list-runtimes
命令查看安装的版本。 有关详细信息,请参阅如何检查是否已安装 .NET。
重要
使用包管理器从 Microsoft 包源安装 .NET 仅支持 x64 体系结构。 Microsoft 包源不支持其他体系结构,如 Arm。 使用 Ubuntu 源或手动安装 .NET。 使用多个源时,请谨慎对待包混合问题。 有关详细信息,请参阅 Linux 上的 .NET 包混合。
有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:
Ubuntu 24.10
.NET 在 Ubuntu 包管理器源中可用。 Microsoft包存储库不再包含适用于 Ubuntu 的 .NET 包。
支持或适用于 Ubuntu 24.10 的以下 .NET 版本:
- 9.0
- 8.0
如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。
重要
.NET 9 于 2024 年 11 月 12 日发布。 包管理器源中显示包可能需要一段时间,或者需要特定的 Linux 分发版才能包含它。
安装 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 概述。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- ca-certificates
- libc6
- libgcc-s1
- libicu74
- liblttng-ust1
- libssl3
- libstdc++6
- libunwind8
- zlib1g
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 zlib1g
库:
sudo apt install zlib1g
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。
Ubuntu 24.04
.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 Microsoft建议使用 Ubuntu 包管理器源。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库。
Ubuntu 24.04 支持或适用以下版本的 .NET:
支持的 .NET 版本 | 适用于 内置 Ubuntu 源 |
可用于 backports Ubuntu 源 |
可用于 Microsoft 源 |
---|---|---|---|
9.0, 8.0 | 8.0 | 7.0、6.0 | 无 |
如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。
重要
.NET 9 于 2024 年 11 月 12 日发布。 包管理器源中显示包可能需要一段时间,或者需要特定的 Linux 分发版才能包含它。
未由Microsoft发布。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- ca-certificates
- libc6
- libgcc-s1
- libicu74
- liblttng-ust1
- libssl3
- libstdc++6
- libunwind8
- zlib1g
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 zlib1g
库:
sudo apt install zlib1g
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。
Ubuntu 22.04
.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 Microsoft建议使用 Ubuntu 包管理器源。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库。
Ubuntu 22.04 支持或适用以下版本的 .NET:
支持的 .NET 版本 | 适用于 内置 Ubuntu 源 |
可用于 .NET 向后移植 Ubuntu 源 |
可用于 Microsoft 源 |
---|---|---|---|
9.0, 8.0 | 8.0、7.0、6.0 | 无 | 8.0、7.0、6.0、3.1 |
重要
如果使用 .NET 8 SDK 和 Ubuntu 22.04,请了解 Canonical 提供的 SDK 版本始终位于 .1xx 功能带中。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。
如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。
重要
.NET 9 于 2024 年 11 月 12 日发布。 包管理器源中显示包可能需要一段时间,或者需要特定的 Linux 分发版才能包含它。
未由Microsoft发布。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- ca-certificates
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu70
- liblttng-ust1
- libssl3
- libstdc++6
- libunwind8
- zlib1g
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 zlib1g
库:
sudo apt install zlib1g
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。
Ubuntu 20.04
默认的 Ubuntu 包存储库不包含此版本的 .NET。 请改用 Microsoft 包存储库。
Ubuntu 20.04 支持或适用以下版本的 .NET:
支持的 .NET 版本 | 适用于 内置 Ubuntu 源 |
可用于 .NET 向后移植 Ubuntu 源 |
可用于 Microsoft 源 |
---|---|---|---|
8.0 | 无 | 无 | 8.0、7.0。 6.0、5.0、3.1、2.1 |
如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。
添加 Microsoft 包存储库
使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。
打开终端并运行以下命令:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- ca-certificates
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu66
- libssl1.1
- libstdc++6
- zlib1g
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 zlib1g
库:
sudo apt install zlib1g
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。
不支持的版本
以下 .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 包名称在所有 Linux 分发版中都是标准化的。 下表列出了包:
.NET 的所有版本均可从 https://dotnet.microsoft.com/download/dotnet 下载,但需要手动安装。 可尝试使用包管理器来安装不同版本的 .NET。 但请求的版本可能不可用。
添加到包管理器源的包以可改动的格式命名,例如:{product}-{type}-{version}
。
product
要安装的 .NET 产品的类型。 有效选项是:dotnet
aspnetcore
type
选择 SDK 或运行时。 有效选项是:sdk
(仅适用于 dotnet 产品)runtime
version
要安装的 SDK 或运行时的版本。 有效选项为任何已发布的版本,例如:9.0
8.0
3.1
2.1
尝试下载的 SDK/运行时可能不适用于 Linux 发行版。 有关受支持的发行版列表,请参阅在 Linux 上安装 .NET。
示例
- 安装 ASP.NET Core 9.0 运行时:
aspnetcore-runtime-9.0
- 安装 .NET Core 2.1 运行时:
dotnet-runtime-2.1
- 安装 .NET 5 SDK:
dotnet-sdk-5.0
- 安装 .NET Core 3.1 SDK:
dotnet-sdk-3.1
注意
某些包在 Linux 发行版上可能不可用。
缺少包
如果包版本组合无效,则它不可用。 例如,没有 ASP.NET Core SDK。 ASP.NET Core 的 SDK 组件包含在 .NET SDK 中。 aspnetcore-sdk-8.0
的值不正确,应为 dotnet-sdk-8.0
。 有关 .NET 支持的 Linux 发行版的列表,请参阅 .NET 依赖项和要求。
手动安装
如果 Ubuntu 版本不受支持,则很可能需要使用安装脚本手动提取二进制文件来安装 .NET。 有关详细信息,请参阅在 Linux 上不使用包管理器的情况下安装 .NET。
Ubuntu 23.10
警告
此版本的 Ubuntu 不再受支持。
不再支持在此版本的 Ubuntu 上运行 .NET。
.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 Microsoft建议使用 Ubuntu 包管理器源。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库。
支持或适用于 Ubuntu 23.10 的以下 .NET 版本:
支持的 .NET 版本 | 适用于 内置 Ubuntu 源 |
可用于 .NET 向后移植 Ubuntu 源 |
可用于 Microsoft 源 |
---|---|---|---|
8.0、6.0 | 8.0、7.0、6.0 | 无 | 8.0、7.0、6.0 |
重要
如果使用 .NET 8 SDK 和 Ubuntu 22.04,请了解 Canonical 提供的 SDK 版本始终位于 .1xx 功能带中。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。
如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- ca-certificates
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu72
- liblttng-ust1
- libssl3
- libstdc++6
- libunwind8
- zlib1g
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 zlib1g
库:
sudo apt install zlib1g
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。
Ubuntu 23.04
警告
此版本的 Ubuntu 不再受支持。
不再支持在此版本的 Ubuntu 上运行 .NET。
.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 Microsoft建议使用 Ubuntu 包管理器源。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库。
支持或可用于 Ubuntu 23.04 的以下 .NET 版本:
支持的 .NET 版本 | 适用于 内置 Ubuntu 源 |
可用于 .NET 向后移植 Ubuntu 源 |
可用于 Microsoft 源 |
---|---|---|---|
8.0、6.0 | 7.0、6.0 | 无 | 8.0、7.0、6.0 |
重要
如果使用 .NET 8 SDK 和 Ubuntu 22.04,请了解 Canonical 提供的 SDK 版本始终位于 .1xx 功能带中。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- ca-certificates
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu72
- liblttng-ust1
- libssl3
- libstdc++6
- libunwind8
- zlib1g
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 zlib1g
库:
sudo apt install zlib1g
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。
Ubuntu 22.10
警告
此版本的 Ubuntu 不再受支持。
不再支持在此版本的 Ubuntu 上运行 .NET。
.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 Microsoft建议使用 Ubuntu 包管理器源。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库。
Ubuntu 22.10 支持或适用以下版本的 .NET:
支持的 .NET 版本 | 适用于 内置 Ubuntu 源 |
可用于 .NET 向后移植 Ubuntu 源 |
可用于 Microsoft 源 |
---|---|---|---|
6.0 | 7.0、6.0 | 无 | 7.0、6.0、3.1 |
重要
如果使用 .NET 8 SDK 和 Ubuntu 22.04,请了解 Canonical 提供的 SDK 版本始终位于 .1xx 功能带中。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。
依赖项
使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:
- ca-certificates
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu71
- liblttng-ust1
- libssl3
- libstdc++6
- libunwind8
- zlib1g
可以使用 apt install
命令安装依赖项。 以下代码片段演示了如何安装 zlib1g
库:
sudo apt install zlib1g
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。