使用安裝指令碼或擷取二進位檔案,在 Linux 上安裝 .NET

本文示範如何使用安裝指令碼或擷取二進位檔案,在 Linux 上安裝 .NET SDK 或 .NET 執行階段。 如需支援內建套件管理員的發行版本清單,請參閱在 Linux 上安裝 .NET

如果您想要開發 .NET 應用程式,請安裝 SDK (其中包含執行階段)。 或者,如果您只需要執行應用程式,請安裝 Runtime。 如果您要安裝執行階段,建議您安裝 ASP.NET Core 執行階段,因為 .NET 和 ASP.NET Core 執行階段都包含在內。

使用 dotnet --list-sdksdotnet --list-runtimes 命令來查看已安裝的版本。 如需詳細資訊,請參閱如何檢查是否已安裝

.NET 版本

有兩種類型的支援版本:長期支援 (LTS) 版本或標準字詞支援 (STS)。 所有版本的品質都一樣。 唯一的差異是支援的時間長度。 LTS 版本可獲得 3 年的免費支援和修補檔。 STS 版本可獲得 18 個月的免費支援和修補檔。 如需詳細資訊,請參閱 .NET 支援原則 (英文)。

下表列出每個版本 .NET (和 .NET Core) 的支援狀態:

✔️ 支援 ❌ 不支援
8 (LTS) 5
7 (STS) 3.1
6 (LTS) 3.0
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

通用相依性

如果 .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 發行版本,請使用在 Linux 上安裝 .NET 一文中的連結。

重要

需要 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 8.0 SDK。

./dotnet-install.sh --channel 8.0

如需詳細資訊,請參閱 dotnet-install 指令碼參考

若要在命令列上啟用 .NET,請參閱設定全系統環境變數

手動安裝

做為套件管理員的替代方案,您可以下載並手動安裝 SDK 和執行階段。 手動安裝通常在持續整合測試中進行,或在不支援的 Linux 發行版本上進行。 對於開發人員或使用者,最好是使用套件管理員。

從下列其中一個網站下載適用於 SDK 或執行階段的二進位版本。 .NET SDK 包含對應的執行階段:

將下載的檔案解壓縮,並使用 export 命令來將 DOTNET_ROOT 設定為解壓縮的資料夾位置,然後確定 .NET 位於 PATH 中。 匯出 DOTNET_ROOT 使 .NET CLI 可在終端中使用。 如需 .NET 環境變數的詳細資訊,請參閱 SDK 和 CLI 環境變數 (部分機器翻譯)。

可以將不同的 .NET 版本解壓縮至同一個資料夾中,不同版本可並排共存。

範例

下列命令使用 Bash 來將環境變數 DOTNET_ROOT 設定為目前的工作目錄,後面接著是 .dotnet。 如果目錄不存在,則會加以建立。 DOTNET_FILE 環境變數是您想要安裝之 .NET 二進位版本的檔案名稱。 此檔案會解壓縮至 DOTNET_ROOT 目錄。 DOTNET_ROOT 目錄與其 tools 子目錄都會新增至 PATH 環境變數中。

重要

如果您執行這些命令,請記得將 DOTNET_FILE 值變更為您已下載的 .NET 二進位檔名稱。

DOTNET_FILE=dotnet-sdk-8.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

確認已下載二進位檔

下載安裝程序之後,請加以驗證以確認檔案尚未變更或沒有損毀。 您可以驗證電腦上的總和檢查碼,然後將它與下載網站上所報告的內容進行比較。

當您從官方下載頁面下載安裝程式或二進位檔時,會顯示該檔案的總和檢查碼。 選取 [複製] 按鈕以將總和檢查碼值複製到剪貼簿。

The .NET download page with checksum

使用 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 安裝二進位檔:

  1. 位於 https://github.com/dotnet/core/tree/main/release-notes/8.0 的 GitHub 上的 .NET 8 版本資訊頁面包含名為版本的章節。 該章節中的資料表可連結至每個 .NET 8 版本的下載和總和檢查碼檔案:

    The github release notes version table for .NET

  2. 選取您下載的 .NET 版本的連結。 上一節使用了 .NET SDK 8.0.100,其位於 .NET 8.0.0 版本中。

  3. 您可以在發行頁面中看到 .NET 執行階段和 .NET SDK 版本,以及前往總和檢查碼檔案的連結:

    The download table with checksums for .NET

  4. 複製前往總和檢查碼檔案的連結。

  5. 使用下列指令碼,但替換連結以下載適當的總和檢查碼檔案:

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. 有了總和檢查碼檔案和下載至相同目錄的 .NET 版本檔案後,請使用 sha512sum -c {file} --ignore-missing 命令來驗證下載的檔案。

    驗證通過時,您會看到顯示 [確定] 狀態的檔案:

    $ 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
    

設定全系統環境變數

如果您使用先前的安裝指令碼,則設定的變數只適用於您目前的終端工作階段。 將這些變數新增至殼層設定檔。 有許多不同殼層可供 Linux 使用,且每個殼層都有不同的設定檔。 例如:

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

在殼層設定檔中設定下列兩個環境變數:

  • DOTNET_ROOT

    此變數是設定至已安裝 .NET 的資料夾,例如 $HOME/.dotnet

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    此變數應同時包含 DOTNET_ROOT 資料夾和 DOTNET_ROOT/tools 資料夾:

    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
    

下一步