-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #41077 from dotnet/main
Merge main into live
- Loading branch information
Showing
7 changed files
with
338 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- | ||
author: adegeo | ||
ms.author: adegeo | ||
ms.date: 05/22/2024 | ||
ms.topic: include | ||
--- | ||
|
||
Microsoft publishes .NET under two different support policies, Long Term Support (LTS) and Standard Term Support (STS). The quality of all releases is the same. The only difference is the length of support. LTS releases get free support and patches for three years. STS releases get free support and patches for 18 months. For more information, see [.NET Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core). | ||
|
||
The versions of .NET that are currently supported by Microsoft are: | ||
|
||
- 8.0 (LTS)—Support ends **November 10, 2026**. | ||
- 6.0 (LTS)—Support ends **November 12, 2024**. | ||
|
||
Other entities that build and release .NET might introduce different support policies. Be sure to check with them to understand how .NET is supported. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
--- | ||
title: Install .NET Runtime on Linux with Snap | ||
description: Learn about how to install the .NET Runtime snap package. Canonical maintains and supports .NET-related snap packages. | ||
author: adegeo | ||
ms.author: adegeo | ||
ms.date: 05/22/2024 | ||
ms.topic: install-set-up-deploy | ||
ms.custom: linux-related-content | ||
#customer intent: As a Linux user, I want to install .NET Runtime through Snap. | ||
--- | ||
|
||
# Install .NET Runtime with Snap | ||
|
||
This article describes how to install the .NET Runtime snap package. .NET Runtime snap packages are provided by and maintained by Canonical. Snaps are a great alternative to the package manager built into your Linux distribution. | ||
|
||
A snap is a bundle of an app and its dependencies that works across many different Linux distributions. Snaps are discoverable and installable from the Snap Store. For more information about Snap, see [Getting started with Snap](https://snapcraft.io/docs/getting-started). | ||
|
||
> [!CAUTION] | ||
> Snap installations of .NET may have problems running [.NET tools](../tools/global-tools.md). If you wish to use .NET tools, we recommend that you install .NET using the [`dotnet-install` script](linux-scripted-manual.md#scripted-install) or the package manager for the particular Linux distribution. | ||
## Prerequisites | ||
|
||
- Linux distribution that supports snap. | ||
- `snapd` the snap daemon. | ||
|
||
Your Linux distribution might already include snap. Try running `snap` from a terminal to see if the command works. For a list of supported Linux distributions, and instructions on how to install snap, see [Installing `snapd`](https://snapcraft.io/docs/installing-snapd). | ||
|
||
## .NET releases | ||
|
||
[!INCLUDE [supported-versions](includes/supported-versions.md)] | ||
|
||
## 1. Install the runtime | ||
|
||
The following steps install the .NET 8 runtime snap package: | ||
|
||
01. Open a terminal. | ||
01. Use `snap install` to install the .NET Runtime snap package. For example, the following command installs the .NET 8 runtime. | ||
|
||
```bash | ||
sudo snap install dotnet-runtime-80 | ||
``` | ||
|
||
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 | | ||
|---------------------------------------------------|---------------------|-----| | ||
| [8 (STS)](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` | Yes | | ||
| [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 | ||
|
||
When the .NET runtime snap package is installed, the `dotnet` command isn't automatically configured. Use the `snap alias` command to use the `dotnet` command from the terminal. The command is formatted as: `sudo snap alias {package}.{command} {alias}`. The following example maps the `dotnet` command: | ||
```bash | ||
sudo snap alias dotnet-runtime-80.dotnet dotnet | ||
``` | ||
## 3. 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 example, if you installed the `dotnet-runtime-80` snap, use the following command to set the environment variable to where .NET is located: | ||
|
||
```bash | ||
export DOTNET_ROOT=/snap/dotnet-runtime-80/current | ||
``` | ||
|
||
### Export the environment variable permanently | ||
|
||
The preceding `export` command only sets the environment variable for the terminal session in which it was run. | ||
|
||
You can edit your shell profile to permanently add the commands. There are a number of different shells available for Linux and each has a different profile. For example: | ||
|
||
- **Bash Shell**: *~/.bash_profile*, *~/.bashrc* | ||
- **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-runtime-80/current`. | ||
|
||
## Troubleshooting | ||
|
||
- [The dotnet terminal command doesn't work](#the-dotnet-terminal-command-doesnt-work) | ||
- [Can't install Snap on WSL2](#cant-install-snap-on-wsl2) | ||
|
||
### The dotnet terminal command doesn't work | ||
|
||
Snap packages can map an alias to a command provided by the package. The .NET Runtime snap packages don't automatically lias the `dotnet` command. To alias the `dotnet` command to the snap package, use the following command: | ||
```bash | ||
sudo snap alias dotnet-runtime-80.dotnet dotnet | ||
``` | ||
Substitute `dotnet-runtime-80` with the name of your runtime package. | ||
### Can't install Snap on WSL2 | ||
|
||
`systemd` must be enabled on the WSL2 instance before Snap can be installed. | ||
|
||
1. Open `/etc/wsl.conf` in a text editor of your choice. | ||
1. Paste in the following configuration: | ||
|
||
```ini | ||
[boot] | ||
systemd=true | ||
``` | ||
|
||
1. Save the file and restart the WSL2 instance through PowerShell. Use the `wsl.exe --shutdown` command. | ||
|
||
## Related content | ||
|
||
- [How to enable TAB completion for the .NET CLI.](../tools/enable-tab-autocomplete.md) |
Oops, something went wrong.