本文演示如何使用安装脚本或通过提取二进制文件,在 Linux 上安装 .NET SDK 或 .NET 运行时。 有关支持内置包管理器的发行版列表,请参阅 在 Linux 上安装 .NET

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

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

.NET 版本

有两种类型的受支持版本:长期支持 (LTS) 版本或标准期限支持 (STS)。 所有版本的质量都是一样的。 唯一的区别是支持的时间长短。 LTS 版本可获得 3 年的免费支持和修补程序。 STS 版本可获得 18 个月的免费支持和修补程序。 有关详细信息,请参阅 .NET 支持策略

下表列出了每个版本的 .NET(和 .NET Core)的支持状态:

✔️ 受支持 ❌ 不受支持

安装 .NET 时,例如 手动安装 时,可能不会安装特定依赖项。 下面的列表详细列出了 Microsoft 支持的 Linux 发行版以及可能需要安装的依赖项。 更多信息,请查看发行版页面:

  • Alpine
  • Debian
  • CentOS
  • Fedora
  • RHEL 和 CentOS Stream
  • Ubuntu
  • 有关依赖项的一般信息,请参阅 独立式 Linux 应用

    RPM 依赖项

    如果之前未列出发行版,并且该版本基于 RPM,则可能需要以下依赖项:

  • krb5-libs
  • libicu
  • openssl-libs
  • 如果目标运行时环境的 OpenSSL 版本为1.1 或更高版本,则需要安装 compat-openssl10。

    DEB 依赖项

    如果之前未列出发行版,并且该版本基于 debian,则可能需要以下依赖项:

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu67
  • libssl1.1
  • libstdc++6
  • zlib1g
  • 通用依赖项

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

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

    dotnet-install 脚本 用于 SDK 运行时 的自动化和非管理员安装。 可以从 https://dot.net/v1/dotnet-install.sh 下载脚本。以这种方式安装 .NET 时,需要安装 Linux 分发版所需的依赖项。 使用 在 Linux 上安装 .NET 一文中的链接获得特定 Linux 分发版。

    需要 Bash 才能运行该脚本。

    可通过 wget 下载脚本:

    wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
    

    运行此脚本之前,需要授予此脚本作为可执行文件运行的权限:

    sudo chmod +x ./dotnet-install.sh
    

    此脚本默认安装最新的长期支持 (LTS) SDK 版本,即 .NET 6。 若要安装最新版本(可能不是 (LTS) 版本),请使用 --version latest 参数。

    ./dotnet-install.sh --version latest
    

    若要安装 .NET 运行时而非 SDK,请使用 --runtime 参数。

    ./dotnet-install.sh --version latest --runtime aspnetcore
    

    可以通过 --channel 参数更改特定主要版本来指示特定版本。 以下命令安装 .NET 7.0 SDK。

    ./dotnet-install.sh --channel 7.0
    

    有关详细信息,请参阅 dotnet-install 脚本参考

    若要在命令行上启用 .NET,请参阅设置系统范围的环境变量

    除了使用包管理器,还可以下载并手动安装 SDK 和运行时。 手动安装通常作为持续集成测试的一部分执行,或在不支持的 Linux 发行版上执行。 对于开发人员或用户,使用包管理器会更好。

    从以下站点之一下载 SDK 或运行时的二进制版本。 .NET SDK 包括相应的运行时:

  • ✔️ .NET 7 下载
  • ✔️ .NET 6 下载
  • 所有 .NET Core 下载项
  • 提取已下载的文件并使用 export 命令将 DOTNET_ROOT 设置为提取文件夹的位置,然后确保 .NET 位于 PATH 中。 导出 DOTNET_ROOT 会使 .NET CLI 命令在终端中可用。 有关 .NET 环境变量的详细信息,请参阅 .NET SDK 和 CLI 环境变量

    或者,下载 .NET 二进制文件后,可以从保存文件的目录运行以下命令以提取运行时。 运行以下命令可使 .NET CLI 命令在终端上可用,并设置所需的环境变量。 请务必将 DOTNET_FILE 值更改为下载的二进制文件的名称:

    DOTNET_FILE=dotnet-sdk-7.0.100-linux-x64.tar.gz
    export DOTNET_ROOT=$(pwd)/.dotnet
    mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"
    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
    

    上述安装脚本方法允许将不同的版本安装到不同的位置,以便你可以显式选择哪个应用使用哪个版本。

    设置系统范围的环境变量

    如果使用了以前的安装脚本,则设置的变量仅适用于当前的终端会话。 将其添加到 shell 配置文件。 Linux 提供了许多不同的 shell,每个都有不同的配置文件。 例如:

  • Bash Shell:~/.bash_profile、~/.bashrc
  • Korn Shell:~/.kshrc 或 .profile
  • Z Shell:~/.zshrc 或 .zprofile
  • 在 shell 配置文件中设置以下两个环境变量:

  • DOTNET_ROOT

    此变量设置为 .NET 安装到的文件夹,如 $HOME/.dotnet

    export DOTNET_ROOT=$HOME/.dotnet
    

    此变量应同时包含 DOTNET_ROOT 文件夹和用户的 .dotnet/tools 文件夹:

    export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools
    
  • 如何为 .NET CLI 启用 Tab 自动补全
  • 教程:使用 Visual Studio Code 通过 .NET SDK 创建控制台应用程序
  •