在 Ubuntu 上安装 .NET SDK 或 .NET 运行时

本文讨论如何在 Ubuntu 上安装 .NET。

如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。

使用 dotnet --list-sdksdotnet --list-runtimes 命令查看安装的版本。 有关详细信息,请参阅如何检查是否已安装 .NET

重要

使用包管理器从 Microsoft 包源安装 .NET 仅支持 x64 体系结构。 Microsoft 包源不支持其他体系结构,如 Arm。 使用 Ubuntu 源或手动安装 .NET。 使用多个源时,请谨慎对待包混合问题。 有关详细信息,请参阅 Linux 上的 .NET 包混合

有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:

Ubuntu 24.04

.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库

Ubuntu 24.04 支持或适用以下版本的 .NET:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
8.0 8.0

如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。

安装 SDK

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-8.0

作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0 替换为 dotnet-runtime-8.0

sudo apt-get install -y dotnet-runtime-8.0

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • libc6
  • libgcc-s1
  • libicu72
  • liblttng-ust1
  • libssl3
  • libstdc++6
  • libunwind8
  • zlib1g

可以使用 apt install 命令安装依赖项。 以下代码片段演示了如何安装 zlib1g 库:

sudo apt install zlib1g

如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus

Ubuntu 23.10

.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库

以下版本的 .NET 受 Ubuntu 23.10 支持或适用于 Ubuntu 23.10:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
8.0、7.0、6.0 8.0、7.0、6.0 8.0、7.0、6.0

重要

Canonical 提供的 .NET SDK 版本始终位于 .1xx 功能区段。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。

如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。

安装 SDK

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-8.0

作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0 替换为 dotnet-runtime-8.0

sudo apt-get install -y dotnet-runtime-8.0

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • 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。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus

Ubuntu 22.04

.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库

Ubuntu 22.04 支持或适用以下版本的 .NET:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
8.0、7.0、6.0 8.0、7.0、6.0 8.0、7.0、6.0、3.1

重要

Canonical 提供的 .NET SDK 版本始终位于 .1xx 功能区段。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。

如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。

安装 SDK

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-8.0

作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0 替换为 dotnet-runtime-8.0

sudo apt-get install -y dotnet-runtime-8.0

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • 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。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus

Ubuntu 20.04

默认的 Ubuntu 包存储库不包含此版本的 .NET。 请改用 Microsoft 包存储库

Ubuntu 20.04 支持或适用以下版本的 .NET:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
8.0、7.0、6.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

安装 SDK

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-8.0

作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0 替换为 dotnet-runtime-8.0

sudo apt-get install -y dotnet-runtime-8.0

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • libc6
  • libgcc-s1
  • libgssapi-krb5-2
  • libicu66
  • libssl1.1
  • libstdc++6
  • zlib1g

可以使用 apt install 命令安装依赖项。 以下代码片段演示了如何安装 zlib1g 库:

sudo apt install zlib1g

如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus

Ubuntu 18.04

默认的 Ubuntu 包存储库不包含此版本的 .NET。 请改用 Microsoft 包存储库

Ubuntu 18.04 支持或适用以下版本的 .NET:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
7.0、6.0 7.0、 6.0、5.0、3.1、2.2、2.1

如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。

添加 Microsoft 包存储库

使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。

打开终端并运行以下命令:

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Ubuntu 18.04 不支持 .NET 8。

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu60
  • libssl1.1
  • libstdc++6
  • zlib1g

可以使用 apt install 命令安装依赖项。 以下代码片段演示了如何安装 zlib1g 库:

sudo apt install zlib1g

如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus

Ubuntu 16.04

默认的 Ubuntu 包存储库不包含此版本的 .NET。 请改用 Microsoft 包存储库

Ubuntu 16.04 支持或适用以下版本的 .NET:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
6.0 6.0、5.0、3.1、3.0、2.2、2.1、2.0

如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。

添加 Microsoft 包存储库

使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。

打开终端并运行以下命令:

wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Ubuntu 16.04 不支持 .NET 8。

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu55
  • libssl1.0.0
  • libstdc++6
  • zlib1g

可以使用 apt install 命令安装依赖项。 以下代码片段演示了如何安装 zlib1g 库:

sudo apt install zlib1g

如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus

不支持的版本

以下 .NET 版本 ❌ 不再受到支持:

  • .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 或运行时的版本。 有效选项为任何已发布的版本,例如:

    • 8.0
    • 6.0
    • 3.1
    • 2.1

    尝试下载的 SDK/运行时可能不适用于 Linux 发行版。 有关受支持的发行版列表,请参阅在 Linux 上安装 .NET

示例

  • 安装 ASP.NET Core 8.0 运行时:aspnetcore-runtime-8.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.04

警告

此版本的 Ubuntu 不再受支持。

不再支持在此版本的 Ubuntu 上运行 .NET。

.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库

Ubuntu 23.04 支持或适用以下版本的 .NET:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
8.0、7.0、6.0 7.0、6.0 8.0、7.0、6.0

重要

Canonical 提供的 .NET SDK 版本始终位于 .1xx 功能区段。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。

.NET 8.0 在 Ubuntu 包存储库中不可用。 注册 Microsoft 包存储库,并使用此源通过 APT 安装 .NET。 如果使用 Microsoft 包存储库安装 .NET,则应从 Ubuntu 存储库取消 .NET 包的优先级。 有关详细信息,请参阅我需要不是我的 Linux 分发版提供的 .NET 版本

安装 SDK

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-8.0

作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0 替换为 dotnet-runtime-8.0

sudo apt-get install -y dotnet-runtime-8.0

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • 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。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus

Ubuntu 22.10

警告

此版本的 Ubuntu 不再受支持。

不再支持在此版本的 Ubuntu 上运行 .NET。

.NET 在 Ubuntu 包管理器源以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 如果要使用 Microsoft 包存储库,请参阅如何注册 Microsoft 包存储库

Ubuntu 22.10 支持或适用以下版本的 .NET:

支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用
7.0、6.0 7.0、6.0 7.0、6.0、3.1

重要

Canonical 提供的 .NET SDK 版本始终位于 .1xx 功能区段。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。

Ubuntu 22.10 不支持 .NET 8。

依赖项

使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • 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。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。

后续步骤