使用安装脚本或通过提取二进制文件在 Linux 上安装 .NET
本文演示如何使用安装脚本或通过提取二进制文件,在 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)的支持状态:
✔️ 受支持 | ❌ 不受支持 |
---|---|
9 (STS) | 7 |
8 (LTS) | 6 (LTS) |
5 | |
3.1 | |
3.0 | |
2.2 | |
2.1 | |
2.0 | |
1.1 | |
1.0 |
依赖项
安装 .NET 时,例如手动安装时,可能不会安装特定依赖项。 下面的列表详细列出了 Microsoft 支持的 Linux 发行版以及可能需要安装的依赖项。 更多信息,请查看发行版页面:
有关依赖项的一般信息,请参阅独立式 Linux 应用。
RPM 依赖项
如果之前未列出发行版,并且该版本基于 RPM,则可能需要以下依赖项:
- krb5-libs
- libicu
- openssl-libs
DEB 依赖项
如果之前未列出发行版,并且该版本基于 debian,则可能需要以下依赖项:
- libc6
- libgcc1
- libgssapi-krb5-2
- libicu70
- libssl3
- libstdc++6
- zlib1g
通用依赖项
如果 .NET 应用使用 System.Drawing.Common 程序集, 则必须安装 libgdiplus 。 有关详细信息,请参阅 仅在 Windows 上支持的 System.Drawing.Common。
通常可以通过将 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
运行此脚本之前,请确保授予此脚本作为可执行文件运行的权限:
chmod +x ./dotnet-install.sh
此脚本默认安装最新的长期支持 (LTS) SDK 版本,即 .NET 8。 若要安装最新版本(可能不是 (LTS) 版本),请使用 --version latest
参数。
./dotnet-install.sh --version latest
若要安装 .NET 运行时而非 SDK,请使用 --runtime
参数。
./dotnet-install.sh --version latest --runtime aspnetcore
可以通过 --channel
参数更改特定主要版本来指示特定版本。 以下命令安装 .NET 9.0 SDK。
./dotnet-install.sh --channel 9.0
有关详细信息,请参阅 dotnet-install 脚本参考。
若要在命令行上启用 .NET,请参阅设置系统范围的环境变量。
若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
手动安装
除了使用包管理器,还可以下载并手动安装 SDK 和运行时。 手动安装通常作为持续集成测试的一部分执行,或在不支持的 Linux 发行版上执行。 对于开发人员或用户,使用包管理器会更好。
从以下站点之一下载 SDK 或运行时的二进制版本。 .NET SDK 包括相应的运行时:
提取已下载的文件并使用 export
命令将 DOTNET_ROOT
设置为提取文件夹的位置,然后确保 .NET 位于 PATH 中。 导出 DOTNET_ROOT
会使 .NET CLI 命令在终端中可用。 有关 .NET 环境变量的详细信息,请参阅 .NET SDK 和 CLI 环境变量。
可以将不同版本的 .NET 提取到同一文件夹,这些版本并存。
示例
以下命令使用 Bash 将环境变量 DOTNET_ROOT
设置为当前工作目录,后跟 .dotnet
。 如果该目录不存在,则会创建它。 DOTNET_FILE
环境变量是要安装的 .NET 二进制版本的文件名。 此文件会提取到 DOTNET_ROOT
目录中。 DOTNET_ROOT
目录及其 tools
子目录都添加到 PATH
环境变量中。
重要事项
如果运行这些命令,请记住将 DOTNET_FILE
值更改为下载的 .NET 二进制文件的名称。
DOTNET_FILE=dotnet-sdk-9.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
可以在同一文件夹中安装多个版本的 .NET。
还可以将 .NET 安装到由 HOME
变量或 ~
路径标识的主目录:
export DOTNET_ROOT=$HOME/.dotnet
若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
验证下载的二进制文件
下载安装程序或二进制版本后,请对其进行验证,以确保文件未被更改或损坏。 可以验证计算机上的校验和,然后将其与下载网站上报告的内容进行比较。
从官方下载页下载文件时,文件的校验和会显示在文本框中。 选择“复制”按钮将校验和值复制到剪贴板。
使用 sha512sum
命令打印已下载的文件的校验和。 例如,以下命令报告 dotnet-sdk-8.0.100-linux-x64.tar.gz 文件的校验和:
$ sha512sum dotnet-sdk-8.0.100-linux-x64.tar.gz
13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5 dotnet-sdk-8.0.100-linux-x64.tar.gz
将校验和与下载站点提供的值进行比较。
重要事项
尽管这些示例中显示了 Linux 文件,但此信息同样适用于 macOS。
使用校验和文件进行验证
.NET 发行说明包含校验和文件的链接,可用于验证下载的文件。 以下步骤介绍了如何下载校验和文件并验证 .NET 安装二进制文件:
GitHub 上的 .NET 8 发行说明页面 (https://github.com/dotnet/core/tree/main/release-notes/8.0#releases) 包含“版本”部分。 该部分中的表链接到每个 .NET 8 版本的下载和校验和文件:
选择下载的 .NET 版本的链接。
上一部分使用的 .NET SDK 8.0.100 位于 .NET 8.0.0 版本中。
在版本页面,可以看到 .NET 运行时和 .NET SDK 版本,以及校验和文件的链接:
右键单击“校验和”链接,然后将链接复制到剪贴板。
打开终端。
使用
curl -O {link}
下载校验和文件。用复制的链接替换以下命令中的链接。
curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
将校验和文件和 .NET 版本文件下载到同一目录后,请使用
sha512sum -c {file} --ignore-missing
命令来验证下载的文件。如果验证通过,会看到打印了 OK 状态的文件:
$ sha512sum -c 8.0.0-sha.txt --ignore-missing dotnet-sdk-8.0.100-linux-x64.tar.gz: OK
如果看到文件标记为失败,则下载的文件无效,不应使用。
$ sha512sum -c 8.0.0-sha.txt --ignore-missing dotnet-sdk-8.0.100-linux-x64.tar.gz: FAILED sha512sum: WARNING: 1 computed checksum did NOT match sha512sum: 8.0.0-sha.txt: no file was verified
设置系统范围的环境变量
如果使用了以前的安装脚本,则设置的变量仅适用于当前的终端会话。 将其添加到 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_ROOT/tools
文件夹:export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools