diff --git a/docs/core/install/linux-debian.md b/docs/core/install/linux-debian.md index fed35afd41b0c..d56a6578e1120 100644 --- a/docs/core/install/linux-debian.md +++ b/docs/core/install/linux-debian.md @@ -9,7 +9,7 @@ ms.custom: linux-related-content # Install the .NET SDK or the .NET Runtime on Debian -This article describes how to install .NET on Debian. When a Debian version falls out of support, .NET is no longer supported with that version. However, these instructions may help you to get .NET running on those versions, even though it isn't supported. +This article describes how to install .NET on Debian. When a Debian version falls out of support, .NET is no longer supported with that version. However, these instructions might help you to get .NET running on those versions, even though it isn't supported. [!INCLUDE [linux-intro-sdk-vs-runtime](includes/linux-intro-sdk-vs-runtime.md)] @@ -42,8 +42,6 @@ sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb ``` -[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)] - # [.NET 10](#tab/dotnet10) [!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)] @@ -76,8 +74,6 @@ rm packages-microsoft-prod.deb # [.NET 10](#tab/dotnet10) -[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)] - [!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)] [!INCLUDE [linux-apt-install-100](includes/linux-install-100-apt.md)] @@ -98,18 +94,18 @@ rm packages-microsoft-prod.deb ## Use APT to update .NET -When a new patch release is available for .NET, you can simply upgrade it through APT with the following commands: +When a new patch release is available for .NET, you can upgrade it through APT with the following commands: ```bash sudo apt-get update sudo apt-get upgrade ``` -If you've upgraded your Linux distribution since installing .NET, you may need to reconfigure the Microsoft package repository. Run the installation instructions for your current distribution version to upgrade to the appropriate package repository for .NET updates. +If you upgraded your Linux distribution since installing .NET, you might need to reconfigure the Microsoft package repository. Run the installation instructions for your current distribution version to upgrade to the appropriate package repository for .NET updates. ## Troubleshooting -This section provides information on common errors you may get while using APT to install .NET. +This section provides information on common errors you might get while using APT to install .NET. ### Unable to find package @@ -123,7 +119,7 @@ If you're using Debian 12 or later, try the following commands: [!INCLUDE [package-manager-failed-to-find-deb-new](includes/package-manager-failed-to-find-deb-new.md)] -If you're using a Debian version prior to 12, try the following commands: +If you're using a Debian version older than 12, try the following commands: [!INCLUDE [package-manager-failed-to-find-deb-classic](includes/package-manager-failed-to-find-deb-classic.md)] diff --git a/docs/core/install/linux-opensuse.md b/docs/core/install/linux-opensuse.md index 95deeac92e265..55d8242556fe1 100644 --- a/docs/core/install/linux-opensuse.md +++ b/docs/core/install/linux-opensuse.md @@ -3,7 +3,7 @@ title: Install .NET on openSUSE Leap description: Learn about which versions of .NET SDK and .NET Runtime are supported, and how to install .NET on openSUSE Leap. author: adegeo ms.author: adegeo -ms.date: 11/07/2025 +ms.date: 11/14/2025 ms.custom: linux-related-content --- @@ -46,20 +46,22 @@ sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo # [.NET 10](#tab/dotnet10) -[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)] - [!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)] [!INCLUDE [linux-zyp-install-100](includes/linux-install-100-zyp.md)] # [.NET 9](#tab/dotnet9) +openSUSE Leap 16 is newly supported with .NET. The packages for .NET 9 aren't published yet. + [!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)] [!INCLUDE [linux-zyp-install-90](includes/linux-install-90-zyp.md)] # [.NET 8](#tab/dotnet8) +openSUSE Leap 16 is newly supported with .NET. The packages for .NET 8 aren't published yet. + [!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)] [!INCLUDE [linux-zyp-install-80](includes/linux-install-80-zyp.md)] diff --git a/docs/core/install/linux-rhel.md b/docs/core/install/linux-rhel.md index 8d4c3e09e5308..4063a99f846a0 100644 --- a/docs/core/install/linux-rhel.md +++ b/docs/core/install/linux-rhel.md @@ -3,7 +3,7 @@ title: Install .NET on RHEL and CentOS Stream description: Learn about which versions of .NET are supported, and how to install .NET on Red Hat Enterprise Linux and CentOS Stream. author: adegeo ms.author: adegeo -ms.date: 11/07/2025 +ms.date: 11/14/2025 ms.custom: linux-related-content --- @@ -44,8 +44,6 @@ The following table is a list of currently supported .NET releases on both RHEL ## RHEL 10 -[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)] - .NET is included in the [AppStream repositories](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle) for RHEL 10. [!INCLUDE [linux-dnf-install-100](includes/linux-install-100-dnf.md)] diff --git a/docs/core/install/linux-sles.md b/docs/core/install/linux-sles.md index 482f6f1e2fa7a..6fe4e7a8a7ddc 100644 --- a/docs/core/install/linux-sles.md +++ b/docs/core/install/linux-sles.md @@ -3,7 +3,7 @@ title: Install .NET on SUSE Enterprise Linux description: Learn about which versions of .NET SDK and .NET Runtime are supported, and how to install .NET on SUSE Enterprise Linux (SLES). author: adegeo ms.author: adegeo -ms.date: 11/07/2025 +ms.date: 11/14/2025 ms.custom: linux-related-content --- @@ -43,20 +43,22 @@ sudo rpm -Uvh https://packages.microsoft.com/config/sles/16/packages-microsoft-p # [.NET 10](#tab/dotnet10) -[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)] - [!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)] [!INCLUDE [linux-zyp-install-100](includes/linux-install-100-zyp.md)] # [.NET 9](#tab/dotnet9) +SUSE Enterprise Linux 16 is newly supported with .NET. The packages for .NET 9 aren't published yet. + [!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)] [!INCLUDE [linux-zyp-install-90](includes/linux-install-90-zyp.md)] # [.NET 8](#tab/dotnet8) +SUSE Enterprise Linux 16 is newly supported with .NET. The packages for .NET 8 aren't published yet. + [!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)] [!INCLUDE [linux-zyp-install-80](includes/linux-install-80-zyp.md)] @@ -71,7 +73,7 @@ sudo rpm -Uvh https://packages.microsoft.com/config/sles/16/packages-microsoft-p sudo rpm -Uvh https://packages.microsoft.com/config/sles/15/packages-microsoft-prod.rpm ``` -Currently, the SLES 15 Microsoft repository setup package installs the *microsoft-prod.repo* file to the wrong directory, preventing zypper from finding the .NET packages. To fix this problem, create a symlink in the correct directory. +Currently, the SLES 15 Microsoft repository setup package installs the `microsoft-prod.repo` file to the wrong directory, preventing zypper from finding the .NET packages. To fix this problem, create a symlink in the correct directory. ```bash sudo ln -s /etc/yum.repos.d/microsoft-prod.repo /etc/zypp/repos.d/microsoft-prod.repo @@ -103,7 +105,7 @@ sudo ln -s /etc/yum.repos.d/microsoft-prod.repo /etc/zypp/repos.d/microsoft-prod ## Troubleshoot the package manager -This section provides information on common errors you may get while using the package manager to install .NET. +This section provides information on common errors you might get while using the package manager to install .NET. ### Unable to find package @@ -115,13 +117,13 @@ This section provides information on common errors you may get while using the p ## Dependencies -When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed: +When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you must make sure these libraries are installed: - krb5 - libicu - libopenssl1_1 -If the target runtime environment's OpenSSL version is 1.1 or newer, you'll need to install `compat-openssl10`. +If the target runtime environment's OpenSSL version is 1.1 or newer, install the `compat-openssl10` package. Dependencies can be installed with the `zypper install` command. The following snippet demonstrates installing the `krb5` library: diff --git a/docs/core/install/linux-snap-runtime.md b/docs/core/install/linux-snap-runtime.md index 965242ae9cc78..a012e1f280a56 100644 --- a/docs/core/install/linux-snap-runtime.md +++ b/docs/core/install/linux-snap-runtime.md @@ -42,17 +42,18 @@ The following steps install the .NET 9 runtime snap package: Each .NET Runtime is published as an individual snap package. The following table lists the packages: -| .NET version | Snap package | .NET version supported by Microsoft | -|---------------------------------------------------|---------------------|-----| -| [9 (STS)](https://snapcraft.io/dotnet-runtime-90) | `dotnet-runtime-90` | Yes | -| [8 (LTS)](https://snapcraft.io/dotnet-runtime-80) | `dotnet-runtime-80` | Yes | -| [7 (STS)](https://snapcraft.io/dotnet-runtime-70) | `dotnet-runtime-70` | No | -| [6 (LTS)](https://snapcraft.io/dotnet-runtime-60) | `dotnet-runtime-60` | No | -| [5](https://snapcraft.io/dotnet-runtime-50) | `dotnet-runtime-50` | No | -| [3.1](https://snapcraft.io/dotnet-runtime-31) | `dotnet-runtime-31` | No | -| [3.0](https://snapcraft.io/dotnet-runtime-30) | `dotnet-runtime-30` | No | -| [2.2](https://snapcraft.io/dotnet-runtime-22) | `dotnet-runtime-22` | No | -| [2.1](https://snapcraft.io/dotnet-runtime-21) | `dotnet-runtime-21` | No | +| .NET version | Snap package | .NET version supported by Microsoft | +|-----------------------------------------------------|----------------------|-------------------------------------| +| [10 (LTS)](https://snapcraft.io/dotnet-runtime-100) | `dotnet-runtime-100` | Yes | +| [9 (STS)](https://snapcraft.io/dotnet-runtime-90) | `dotnet-runtime-90` | Yes | +| [8 (LTS)](https://snapcraft.io/dotnet-runtime-80) | `dotnet-runtime-80` | Yes | +| [7 (STS)](https://snapcraft.io/dotnet-runtime-70) | `dotnet-runtime-70` | No | +| [6 (LTS)](https://snapcraft.io/dotnet-runtime-60) | `dotnet-runtime-60` | No | +| [5](https://snapcraft.io/dotnet-runtime-50) | `dotnet-runtime-50` | No | +| [3.1](https://snapcraft.io/dotnet-runtime-31) | `dotnet-runtime-31` | No | +| [3.0](https://snapcraft.io/dotnet-runtime-30) | `dotnet-runtime-30` | No | +| [2.2](https://snapcraft.io/dotnet-runtime-22) | `dotnet-runtime-22` | No | +| [2.1](https://snapcraft.io/dotnet-runtime-21) | `dotnet-runtime-21` | No | ## 2. Enable the dotnet command diff --git a/docs/core/install/linux-snap-sdk.md b/docs/core/install/linux-snap-sdk.md index 6f641523d4a39..1aeb0c5b4fd05 100644 --- a/docs/core/install/linux-snap-sdk.md +++ b/docs/core/install/linux-snap-sdk.md @@ -3,9 +3,10 @@ title: Install .NET SDK on Linux with Snap description: Learn about how to install the .NET SDK snap package. Canonical maintains and supports .NET-related snap packages. author: adegeo ms.author: adegeo -ms.date: 11/07/2025 +ms.date: 11/14/2025 ms.topic: install-set-up-deploy ms.custom: linux-related-content, updateeachrelease +ai-usage: ai-assisted #customer intent: As a Linux user, I want to install .NET SDK through Snap. --- @@ -37,40 +38,59 @@ Your Linux distribution might already include snap. Try running `snap` from a te [!INCLUDE [linux-release-wait](includes/linux-release-wait.md)] -Snap packages for the .NET SDK are all published under the same identifier: `dotnet-sdk`. A specific version of the SDK can be installed by specifying the channel. The SDK includes both the ASP.NET Core and .NET runtime, versioned to the SDK. +Starting with .NET 9, snap packages for the .NET SDK are published under version-specific identifiers (for example, `dotnet-sdk-90` for .NET 9 and `dotnet-sdk-100` for .NET 10). Prior to .NET 9, all SDK versions were published under the same identifier `dotnet-sdk`, and you specified the version through a channel. Additionally, .NET 9 and later snap packages support both x64 and Arm64 architectures, while earlier versions only support x64. The SDK includes both the ASP.NET Core and .NET runtime, versioned to the SDK. > [!TIP] > The [Snapcraft .NET SDK package page](https://snapcraft.io/dotnet-sdk) includes distribution-specific instructions on how to install Snapcraft and .NET. 01. Open a terminal. -01. Use `snap install` to install the .NET SDK snap package. For example, the following command installs the `latest/stable` channel, which is the default. +01. Use `snap install` to install the .NET SDK snap package. - ```bash - sudo snap install dotnet-sdk --classic - ``` + The `--classic` parameter is required. + + - **For .NET 9 and later** + + Install the version-specific package. For example, the following command installs .NET SDK 10: + + ```bash + sudo snap install dotnet-sdk-100 --classic + ``` + + - **For .NET 8 and earlier** - - The `--classic` parameter is required. - - Use the `--channel` parameter to specify which version to install. If this parameter is omitted, `latest/stable` is used. For example, `--channel 8.0/stable` installs .NET SDK 8.0. + Install from the `dotnet-sdk` package and specify a channel. If this parameter is omitted, `latest/stable` is used. For example, the following command installs .NET SDK 8: + + ```bash + sudo snap install dotnet-sdk --classic --channel 8.0/stable + ``` The `dotnet` snap alias is automatically created and mapped to the snap package's `dotnet` command. -The following table lists the package channels you can install: +The following table lists the snap packages and channels you can install: -| .NET version | Snap package channel | -|--------------|---------------------------------| -| 10 (LTS) | *Not yet available | -| 9 (STS) | *Not yet available | -| 8 (LTS) | `8.0/stable`
`lts/stable` | -| 7 | `7.0/stable` (out of support) | -| 6 | `6.0/stable` (out of support) | -| 5 | `5.0/stable` (out of support) | -| 3.1 | `3.1/stable` (out of support) | -| 2.1 | `2.1/stable` (out of support) | +| .NET version | Snap package or channel | +|--------------|----------------------------------------| +| 10 (LTS) | `dotnet-sdk-100` (preview) | +| 9 (STS) | `dotnet-sdk-90` | +| 8 (LTS) | `dotnet-sdk --channel 8.0/stable` | +| 7 | `dotnet-sdk --channel 7.0/stable` (out of support) | +| 6 | `dotnet-sdk --channel 6.0/stable` (out of support) | +| 5 | `dotnet-sdk --channel 5.0/stable` (out of support) | +| 3.1 | `dotnet-sdk --channel 3.1/stable` (out of support) | +| 2.1 | `dotnet-sdk --channel 2.1/stable` (out of support) | ## 2. Export the install location The `DOTNET_ROOT` environment variable is often used by tools to determine where .NET is installed. When .NET is installed through Snap, this environment variable isn't configured. You should configure the *DOTNET_ROOT* environment variable in your profile. The path to the snap uses the following format: `/snap/{package}/current`. +For .NET 9 and later, use the version-specific package name: + +```bash +export DOTNET_ROOT=/snap/dotnet-sdk-100/current +``` + +For .NET 8 and earlier, use the shared package name: + ```bash export DOTNET_ROOT=/snap/dotnet-sdk/current ``` @@ -85,7 +105,7 @@ You can edit your shell profile to permanently add the commands. There are many - **Korn Shell**: _~/.kshrc_ or _.profile_ - **Z Shell**: _~/.zshrc* or _.zprofile_ -Edit the appropriate source file for your shell and add `export DOTNET_ROOT=/snap/dotnet-sdk/current`. +Edit the appropriate source file for your shell and add the export command for your installed .NET version. For .NET 9+, use `export DOTNET_ROOT=/snap/dotnet-sdk-100/current` (adjust the version number as needed). For .NET 8 and earlier, use `export DOTNET_ROOT=/snap/dotnet-sdk/current`. ## 3. Use the .NET CLI @@ -122,7 +142,15 @@ To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md). ### The dotnet terminal command doesn't work -Snap packages can map an alias to a command provided by the package. By default, the .NET SDK snap packages create an alias for the `dotnet` command. If the alias wasn't created or was previously removed, the following command shows how to map the alias: +Snap packages can map an alias to a command provided by the package. By default, the .NET SDK snap packages create an alias for the `dotnet` command. If the alias wasn't created or was previously removed, use the following command to map the alias. + +For .NET 9 and later: + +```bash +sudo snap alias dotnet-sdk-100.dotnet dotnet +``` + +For .NET 8 and earlier: ```bash sudo snap alias dotnet-sdk.dotnet dotnet @@ -161,7 +189,13 @@ Try the following steps to fix the issue: - `/usr/local/bin/dotnet` - `/usr/share/dotnet` - Use the following command to create a symbolic link to the snap package: + Use the following command to create a symbolic link to the snap package. For .NET 9 and later, use the version-specific package name: + + ```bash + ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnet + ``` + + For .NET 8 and earlier: ```bash ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet