Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 5 additions & 9 deletions docs/core/install/linux-debian.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)]

Expand Down Expand Up @@ -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)]
Expand Down Expand Up @@ -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)]
Expand All @@ -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

Expand All @@ -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)]

Expand Down
8 changes: 5 additions & 3 deletions docs/core/install/linux-opensuse.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
---

Expand Down Expand Up @@ -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)]
Expand Down
4 changes: 1 addition & 3 deletions docs/core/install/linux-rhel.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
---

Expand Down Expand Up @@ -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)]
Expand Down
16 changes: 9 additions & 7 deletions docs/core/install/linux-sles.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
---

Expand Down Expand Up @@ -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)]
Expand All @@ -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
Expand Down Expand Up @@ -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

Expand All @@ -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:

Expand Down
23 changes: 12 additions & 11 deletions docs/core/install/linux-snap-runtime.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
78 changes: 56 additions & 22 deletions docs/core/install/linux-snap-sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
---

Expand Down Expand Up @@ -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`<br>`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
```
Expand All @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Loading