本文演示如何使用安装脚本或通过提取二进制文件,在 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 创建控制台应用程序