使用安装脚本或通过提取二进制文件在 Linux 上安装 .NET

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

还可通过 Snap 安装 .NET。 有关详细信息,请参阅通过 Snap 安装 .NET SDK 或 .NET Runtime

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

如果已安装 SDK 或运行时,请使用 dotnet --list-sdksdotnet --list-runtimes 命令查看安装了哪些版本。 有关详细信息,请参阅如何检查是否已安装 .NET

.NET 版本

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

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

✔️ 受支持 ❌ 不受支持
7 (STS) 5
6 (LTS) 3.0
3.1 (LTS) 2.2
2.1
2.0
1.1
1.0

依赖项

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

有关依赖项的一般信息,请参阅独立式 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

通用依赖项

对于使用 System.Drawing.Common 程序集的 .NET 应用,还需要以下依赖项:

脚本安装

dotnet-install 脚本用于 SDK运行时的自动化和非管理员安装。 可通过 https://dot.net/v1/dotnet-install.sh 下载脚本。

重要

需要 Bash 才能运行该脚本。

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

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 脚本参考

手动安装

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

首先,从以下站点之一下载 SDK 或运行时的二进制版本。 如果安装 .NET SDK,则无需安装相应的运行时:

接下来,提取已下载的文件并使用 export 命令将 DOTNET_ROOT 设置为提取文件夹的位置,然后确保 .NET 位于 PATH 中。 这应会使 .NET 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
    
  • PATH

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

    export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools
    

后续步骤