分享方式:


使用 Snap 安裝 .NET 執行階段

本文描述如何安裝 .NET 執行階段 Snap 套件。 .NET 執行階段 Snap 套件是由 Canonical 提供和維護。 Snap 是 Linux 發行版本內建套件管理員的絕佳替代方案。

Snap 是應用程式及其相依性的套件組合,可在許多不同的 Linux 發行版本上運作。 您可從 Snap Store 探索和安裝 Snap。 有關 Snap 的更多資訊,請參閱快速入門教程

警告

.NET 的 Snap 安裝可能有執行 .NET 工具的問題。 如果您想要使用 .NET 工具,建議您針對特定 Linux 發行版本使用 dotnet-install 指令碼或套件管理員來安裝 .NET。

必要條件

  • 支援 Snap 的 Linux 發行版本。
  • 對 Snap 精靈執行 snapd

您的 Linux 發行版本可能已包含 Snap。 請嘗試從終端執行 snap,以查看命令是否正常運作。 如需支援的 Linux 發行版本清單,以及如何安裝 Snap 的指示,請參閱安裝 snapd

.NET 版本

Microsoft 會在兩個不同的支援原則下發佈 .NET:長期支援 (LTS) 和標準期限支援 (STS)。 所有版本的品質都一樣。 唯一的差異是支援的時間長度。 LTS 版本提供 3 年的免費支援和修補程式。 STS 版本可獲得 18 個月的免費支援和修補檔。 如需詳細資訊,請參閱 .NET 支援原則 (英文)。

Microsoft 目前支援的 .NET 版本如下:

  • 8.0 (LTS)—支援將於 2026 年 11 月 10 日結束。
  • 6.0 (LTS)—支援將於 2024 年 11 月 12 日結束。

其他建置和發行 .NET 的實體可能會引入不同的支援原則。 請務必洽詢這些實體,以瞭解對 .NET 的支援方式。

1.安裝執行階段

以下為安裝 .NET 8 執行階段 Snap 套件的步驟:

  1. 開啟終端機。

  2. 使用 snap install 安裝 .NET 執行階段 Snap 套件。 例如,可使用以下命令安裝 .NET 8 執行階段。

    sudo snap install dotnet-runtime-80
    

每個 .NET 執行階段都會發佈為個別的 Snap 套件。 下表列出套件:

.NET 版本 Snap 套件 Microsoft 支援 .NET 版本
8 (STS) dotnet-runtime-80 Yes
7 (STS) dotnet-runtime-70 No
6 (LTS) dotnet-runtime-60 Yes
5 dotnet-runtime-50 No
3.1 dotnet-runtime-31 No
3.0 dotnet-runtime-30 No
2.2 dotnet-runtime-22 No
2.1 dotnet-runtime-21 No

2.啟用 dotnet 命令

安裝 .NET 執行階段 Snap 套件後,不會自動設定 dotnet 命令。 使用 snap alias 命令以從終端使用 dotnet 命令。 此命令的格式為:sudo snap alias {package}.{command} {alias}。 下列範例會對應 dotnet 命令:

sudo snap alias dotnet-runtime-80.dotnet dotnet

3.匯出安裝位置

DOTNET_ROOT 環境變數通常由工具用來判斷安裝 .NET 的位置。 透過 Snap 安裝 .NET 時,不會設定此環境變數。 您應該在設定檔中設定 DOTNET_ROOT 環境變數。 Snap 的路徑使用下列格式:/snap/{package}/current。 例如,如果您安裝了 dotnet-runtime-80 Snap,請使用下列命令將環境變數設定為 .NET 所在的位置:

export DOTNET_ROOT=/snap/dotnet-runtime-80/current

永久匯出環境變數

上述 export 命令只會設定其執行所在終端機工作階段的環境變數。

您可以編輯殼層設定檔,永久新增命令。 有數個不同殼層可供 Linux 使用,且每個殼層都有不同的設定檔。 例如:

  • Bash 殼層~/.bash_profile~/.bashrc
  • Korn 殼層~/.kshrc.profile
  • Z 殼層~/.zshrc.zprofile

編輯殼層的適當原始程式檔,並新增 export DOTNET_ROOT=/snap/dotnet-runtime-80/current

疑難排解

dotnet 終端命令無作用

Snap 套件可以將別名對應至套件所提供的命令。 .NET 執行階段 Snap 套件不會自動將別名對應至 dotnet 命令。 若要將 dotnet 命令別名對應至 Snap 套件,請使用下列命令:

sudo snap alias dotnet-runtime-80.dotnet dotnet

以執行階段套件的名稱取代 dotnet-runtime-80

無法在 WSL2 上安裝 Snap

必須先在 WSL2 執行個體上啟用 systemd,才能安裝 Snap。

  1. 以選擇的文字編輯器開啟 /etc/wsl.conf

  2. 貼上下列組態:

    [boot]
    systemd=true
    
  3. 儲存檔案,並透過 PowerShell 重新啟動 WSL2 執行個體。 使用 wsl.exe --shutdown 命令。

4.使用 .NET CLI

開啟終端機並輸入 dotnet

dotnet

您會看到類似下方的輸出:

Usage: dotnet [options]
Usage: dotnet [path-to-application]

Options:
  -h|--help         Display help.
  --info            Display .NET information.
  --list-sdks       Display the installed SDKs.
  --list-runtimes   Display the installed runtimes.

path-to-application:
  The path to an application .dll file to execute.

若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀