在 Debian 上安裝 .NET SDK 或 .NET 執行階段
本文描述如何在 Debian 上安裝 .NET。 當某個 Debian 版本不受支援時,該版本便不再支援 .NET。 不過,這些指示可協助您讓 .NET 在不受支援的情況下,也能在這些版本上執行。
如果您想要開發 .NET 應用程式,請安裝 SDK (其中包含執行階段)。 或者,如果您只需要執行應用程式,請安裝 Runtime。 如果您要安裝執行階段,建議您安裝 ASP.NET Core 執行階段,因為 .NET 和 ASP.NET Core 執行階段都包含在內。
使用 dotnet --list-sdks
和 dotnet --list-runtimes
命令來查看已安裝的版本。 如需詳細資訊,請參閱如何檢查是否已安裝 。
重要
使用套件管理員從 Microsoft 套件摘要安裝 .NET,僅支援 x64 結構。 Microsoft 套件摘要不支援其他結構,例如 Arm。
如需在沒有套件管理員的情況下安裝 .NET 的詳細資訊,請參閱下列其中一篇文章:
支援的發行版本
下表列出目前支援的 .NET 版本及予以支援的 Debian 版本。 這些版本會繼續受到支援,直到 .NET 版本支援終止,或 Debian 版本生命週期結束為止。
Debian | .NET |
---|---|
12 | 9, 8, 6 |
11 | 8, 6 |
重要
.NET 9 目前為預覽狀態。
已不再支援以下版本的 .NET❌:
- .NET 7
- .NET 6 (自 2024 年 11 月 12 日起)
- .NET 5
- .NET Core 3.1
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
安裝預覽版本
.NET 的預覽版與候選版均無法在套件存放庫中取得。 您可以使用下列其中一種方式來安裝 .NET 的預覽版與候選版:
- 使用 install-dotnet.sh 編寫安裝指令碼 (部分機器翻譯)
- 手動擷取二進位 (部分機器翻譯)
移除預覽版本
使用套件管理員來管理 .NET 的安裝時,如果您先前已安裝預覽版,可能會發生衝突。 套件管理員可能會將非預覽版理解為舊版 .NET。 若要安裝非預覽版本,請先解除安裝預覽版本。 如需解除安裝 .NET 的詳細資訊,請參閱如何移除 .NET 執行階段和 SDK (部分機器翻譯)。
Debian 12
您可以使用幾個命令來使用 APT 完成安裝。 請在安裝 .NET 之前,執行下列命令,以將 Microsoft 套件簽署金鑰新增至信任的金鑰清單,然後新增套件存放庫。
開啟終端機,然後執行下列命令:
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
安裝 SDK
.NET SDK 可讓您使用 .NET 開發應用程式。 如果您安裝 .NET SDK,則不需要安裝對應的執行階段。 若要安裝 .NET SDK,請執行下列命令:
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-8.0
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
安裝執行階段
ASP.NET Core 執行階段可讓您執行使用未提供執行階段之 .NET 建立的應用程式。 下列命令會安裝 ASP.NET Core 執行階段,這是與 .NET 相容性最高的執行階段。 在終端機中執行下列命令:
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-8.0
ASP.NET Core 執行階段的替代方案是安裝 .NET 執行階段,後者不包含 ASP.NET Core 支援:將先前命令中的 aspnetcore-runtime-8.0
取代為 dotnet-runtime-8.0
:
sudo apt-get install -y dotnet-runtime-8.0
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
Debian 11
您可以使用幾個命令來使用 APT 完成安裝。 請在安裝 .NET 之前,執行下列命令,以將 Microsoft 套件簽署金鑰新增至信任的金鑰清單,然後新增套件存放庫。
開啟終端機,然後執行下列命令:
wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
安裝 SDK
.NET SDK 可讓您使用 .NET 開發應用程式。 如果您安裝 .NET SDK,則不需要安裝對應的執行階段。 若要安裝 .NET SDK,請執行下列命令:
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-8.0
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
安裝執行階段
ASP.NET Core 執行階段可讓您執行使用未提供執行階段之 .NET 建立的應用程式。 下列命令會安裝 ASP.NET Core 執行階段,這是與 .NET 相容性最高的執行階段。 在終端機中執行下列命令:
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-8.0
ASP.NET Core 執行階段的替代方案是安裝 .NET 執行階段,後者不包含 ASP.NET Core 支援:將先前命令中的 aspnetcore-runtime-8.0
取代為 dotnet-runtime-8.0
:
sudo apt-get install -y dotnet-runtime-8.0
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
Debian 10
您可以使用幾個命令來使用 APT 完成安裝。 請在安裝 .NET 之前,執行下列命令,以將 Microsoft 套件簽署金鑰新增至信任的金鑰清單,然後新增套件存放庫。
開啟終端機,然後執行下列命令:
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
安裝 SDK
.NET SDK 可讓您使用 .NET 開發應用程式。 如果您安裝 .NET SDK,則不需要安裝對應的執行階段。 若要安裝 .NET SDK,請執行下列命令:
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-7.0
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
安裝執行階段
ASP.NET Core 執行階段可讓您執行使用未提供執行階段之 .NET 建立的應用程式。 下列命令會安裝 ASP.NET Core 執行階段,這是與 .NET 相容性最高的執行階段。 在終端機中執行下列命令:
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-7.0
ASP.NET Core 執行階段的替代方案是安裝 .NET 執行階段,後者不包含 ASP.NET Core 支援:將先前命令中的 aspnetcore-runtime-7.0
取代為 dotnet-runtime-7.0
:
sudo apt-get install -y dotnet-runtime-7.0
若要了解如何使用 .NET CLI,請參閱 .NET CLI 概觀。
如何安裝其他版本
所有 .NET 版本都可在 https://dotnet.microsoft.com/download/dotnet 下載,但需要手動安裝。 您可以嘗試使用套件管理員來安裝不同版本的 .NET。 不過,可能未提供您要求的版本。
新增至套件管理員摘要的套件會以可帶入資訊的格式命名,例如:{product}-{type}-{version}
。
product
要安裝的 .NET 產品類型。 有效的 選項如下:dotnet
aspnetcore
type
選擇 SDK 或執行階段。 有效的 選項如下:sdk
(僅適用於 dotnet 產品)runtime
version
要安裝的 SDK 或執行階段版本。 有效選項是任何已發行的版本,例如:8.0
6.0
3.1
2.1
您嘗試下載的 SDK/執行階段可能不適用於您的 Linux 發行版本。 如需支援的發行版本清單,請參閱在 Linux 上安裝 .NET。
範例
- 安裝 ASP.NET Core 8.0 執行階段:
aspnetcore-runtime-8.0
- 安裝 .NET Core 2.1 執行階段:
dotnet-runtime-2.1
- 安裝 .NET 5 SDK:
dotnet-sdk-5.0
- 安裝 .NET Core 3.1 SDK:
dotnet-sdk-3.1
注意
您的 Linux 發行版本上可能未提供某些套件。
缺少套件
如果套件版本組合無法運作,則無法使用。 例如,沒有 ASP.NET Core SDK。 適用於 ASP.NET Core 的 SDK 元件隨附於 .NET SDK 中。 aspnetcore-sdk-8.0
值不正確,應該是 dotnet-sdk-8.0
。 如需 .NET 支援的 Linux 發行版本清單,請參閱 .NET 相依性和需求 (部分機器翻譯)。
使用 APT 更新 .NET
當新的修補檔版本可供 .NET 使用時,只要使用下列命令透過 APT 升級即可:
sudo apt-get update
sudo apt-get upgrade
如果您已在安裝 .NET 之後升級 Linux 發行版本,可能需要重新設定 Microsoft 套件存放庫。 執行您目前發行版本的安裝指示,以升級至 .NET 更新適用的套件存放庫。
疑難排解
本節提供您在使用 APT 安裝 .NET 時可能遇到的常見錯誤相關資訊。
找不到套件
重要
使用套件管理員從 Microsoft 套件摘要安裝 .NET,僅支援 x64 結構。 Microsoft 套件摘要不支援其他結構,例如 Arm。
如需在沒有套件管理員的情況下安裝 .NET 的詳細資訊,請參閱下列其中一篇文章:
- 使用
install-dotnet
指令碼來安裝 .NET。 - 手動安裝 .NET。 (部分機器翻譯)
找不到 \ 某些套件無法安裝
如果您收到類似找不到套件 {dotnet-package} 或某些套件無法安裝的錯誤訊息,請執行下列命令。
下列這組命令中有兩個預留位置。
{dotnet-package}
這代表您要安裝的 .NET 套件,例如aspnetcore-runtime-8.0
。 這會在下列sudo apt-get install
命令中使用。
首先,嘗試清除套件清單:
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
接著,嘗試再次安裝 .NET。 如果無法運作,您可以使用下列命令來執行手動安裝:
如果您使用 Debian 12 或更新版本,請嘗試下列命令:
# Get OS version info which adds the $ID and $VERSION_ID variables
source /etc/os-release
# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
# Move the key to the appropriate place
sudo mv microsoft.asc.gpg $(cat /etc/apt/sources.list.d/microsoft-prod.list | grep -oP "(?<=signed-by=).*(?=\])")
# Update packages and install .NET
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
如果您使用 12 之前的 Debian 版本,請嘗試下列命令:
# Define the OS version, name, and codename
source /etc/os-release
# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
# Set ownership
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
# Update packages and install .NET
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
無法擷取
安裝 .NET 套件時,您可能會看到類似 Failed to fetch ... File has unexpected size ... Mirror sync in progress?
的錯誤。 此錯誤可能表示 .NET 的套件摘要正在以較新的套件版本進行升級,而您應該稍後再試一次。 在升級期間,套件摘要不應超過 30 分鐘無法使用。 如果您持續收到此錯誤超過 30 分鐘,請在 https://github.com/dotnet/core/issues 中提出問題。
相依性
當您使用套件管理員安裝時,系統會為您安裝這些程式庫。 不過,如果您手動安裝 .NET 或發佈獨立式應用程式,則必須確定已安裝這些程式庫:
10.x
- libc6
- libgcc1
- libgssapi-krb5-2
- libicu63
- libssl1.1
- libstdc++6
- zlib1g
11.x
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu67
- libssl1.1
- libstdc++6
- zlib1g
12.x
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu72
- libssl3
- libstdc++6
- zlib1g
您可以使用 apt install
命令來安裝相依性。 下列程式碼片段示範如何安裝 libc6
程式庫:
sudo apt install libc6
如果 .NET 應用程式使用 System.Drawing.Common 組件,則也需安裝 libgdiplus。 因為 Linux 上不再支援 System.Drawing.Common,所以這只適用於 .NET 6,而且需要設定 System.Drawing.EnableUnixSupport
執行階段組態參數。
您可以將 Mono 存放庫新增至您的系統 (英文),以安裝最新版的 libgdiplus。