ref:https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu
Install the .NET SDK or the .NET Runtime on Ubuntu
- Article
- 05/15/2022
- 12 minutes to read
.NET is supported on Ubuntu. This article describes how to install .NET on Ubuntu. When an Ubuntu version falls out of support, .NET is no longer supported with that version.
Install the SDK (which includes the runtime) if you want to develop .NET apps. Or, if you only need to run apps, install the Runtime. If you're installing the Runtime, we suggest you install the ASP.NET Core Runtime as it includes both .NET and ASP.NET Core runtimes.
If you've already installed the SDK or Runtime, use the dotnet --list-sdks
and dotnet --list-runtimes
commands to see which versions are installed. For more information, see How to check that .NET is already installed.
Important
Package manager installs are only supported on the x64 architecture. Other architectures, such as ARM, must install .NET by some other means such as with Snap, an installer script, or through a manual binary installation.
For more information on installing .NET without a package manager, see one of the following articles:
- Alternatively install .NET with Snap.
- Alternatively install .NET with install-dotnet
- Manually install .NET
Supported distributions
The following table is a list of currently supported .NET releases and the versions of Ubuntu they're supported on.
Ubuntu | .NET |
6+ | |
3.1, 6 | |
3.1, 6 | |
3.1, 6 | |
3.1, 6 |
The following versions of .NET are ❌ no longer supported. The downloads for these still remain published:
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
Install preview versions
Preview and release candidate versions of .NET aren't available in package managers. You can install previews and release candidates of .NET in one of the following ways:
Remove preview versions
When using a package manager to manage your installation of .NET, you may run into a conflict if you've previously installed a preview release. The package manager may interpret the non-preview release as an earlier version of .NET. To install the non-preview release, first uninstall the preview versions. For more information about uninstalling .NET, see How to remove the .NET Runtime and SDK.
22.04
Installing with APT can be done with a few commands. Before you install .NET, run the following commands to add the Microsoft package signing key to your list of trusted keys and add the package repository.
Open a terminal and run the following commands:
Bash
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Install the SDK
The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-6.0
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-6.0, see the APT troubleshooting section.
Install the runtime
The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-6.0
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-6.0, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace aspnetcore-runtime-6.0
in the previous command with dotnet-runtime-6.0
:
Bash
sudo apt-get install -y dotnet-runtime-6.0
Note: Ubuntu 22.04 includes OpenSSL 3 as the baseline version. .NET 6 supports OpenSSL 3 while earlier .NET versions do not. Microsoft does not test or support using OpenSSL 1.x on Ubuntu 22.04.
21.10
Installing with APT can be done with a few commands. Before you install .NET, run the following commands to add the Microsoft package signing key to your list of trusted keys and add the package repository.
Open a terminal and run the following commands:
Bash
wget https://packages.microsoft.com/config/ubuntu/21.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Install the SDK
The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-6.0
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-6.0, see the APT troubleshooting section.
Install the runtime
The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-6.0
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-6.0, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace aspnetcore-runtime-6.0
in the previous command with dotnet-runtime-6.0
:
Bash
sudo apt-get install -y dotnet-runtime-6.0
20.04
Installing with APT can be done with a few commands. Before you install .NET, run the following commands to add the Microsoft package signing key to your list of trusted keys and add the package repository.
Open a terminal and run the following commands:
Bash
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Install the SDK
The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-6.0
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-6.0, see the APT troubleshooting section.
Install the runtime
The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-6.0
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-6.0, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace aspnetcore-runtime-6.0
in the previous command with dotnet-runtime-6.0
:
Bash
sudo apt-get install -y dotnet-runtime-6.0
18.04
Installing with APT can be done with a few commands. Before you install .NET, run the following commands to add the Microsoft package signing key to your list of trusted keys and add the package repository.
Open a terminal and run the following commands:
Bash
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Install the SDK
The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-6.0
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-6.0, see the APT troubleshooting section.
Install the runtime
The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-6.0
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-6.0, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace aspnetcore-runtime-6.0
in the previous command with dotnet-runtime-6.0
:
Bash
sudo apt-get install -y dotnet-runtime-6.0
16.04
Installing with APT can be done with a few commands. Before you install .NET, run the following commands to add the Microsoft package signing key to your list of trusted keys and add the package repository.
Open a terminal and run the following commands:
Bash
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Install the SDK
The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-6.0
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-6.0, see the APT troubleshooting section.
Install the runtime
The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following commands:
Bash
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-6.0
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-6.0, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace aspnetcore-runtime-6.0
in the previous command with dotnet-runtime-6.0
:
Bash
sudo apt-get install -y dotnet-runtime-6.0
How to install other versions
All versions of .NET are available for download at https://dotnet.microsoft.com/download/dotnet, but require manual installation. You can try and use the package manager to install a different version of .NET. However, the requested version may not be available.
The packages added to package manager feeds are named in a hackable format, for example: {product}-{type}-{version}
.
- product
The type of .NET product to install. Valid options are:
- dotnet
- aspnetcore
- type
Chooses the SDK or the runtime. Valid options are:
- sdk
- runtime
- version
The version of the SDK or runtime to install. This article will always give the instructions for the latest supported version. Valid options are any released version, such as:
- 5.0
- 3.1
- 3.0
- 2.1
It's possible the SDK/runtime you're trying to download is not available for your Linux distribution. For a list of supported distributions, see Install .NET on Linux.
Examples
- Install the ASP.NET Core 5.0 runtime:
aspnetcore-runtime-5.0
- Install the .NET Core 2.1 runtime:
dotnet-runtime-2.1
- Install the .NET 5 SDK:
dotnet-sdk-5.0
- Install the .NET Core 3.1 SDK:
dotnet-sdk-3.1
Package missing
If the package-version combination doesn't work, it's not available.
For example, there isn't an ASP.NET Core SDK, the SDK components are
included with the .NET SDK. The value aspnetcore-sdk-2.2
is incorrect and should be dotnet-sdk-2.2
. For a list of Linux distributions supported by .NET, see .NET dependencies and requirements.
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:
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.
APT troubleshooting
This section provides information on common errors you may get while using APT to install .NET.
Unable to find package
Important
Package manager installs are only supported on the x64 architecture. Other architectures, such as ARM, must install .NET by some other means such as with Snap, an installer script, or through a manual binary installation.
For more information on installing .NET without a package manager, see one of the following articles:
- Alternatively install .NET with Snap.
- Alternatively install .NET with install-dotnet
- Manually install .NET
Unable to locate \ Some packages could not be installed
If you receive an error message similar to Unable to locate package {dotnet-package} or Some packages could not be installed, run the following commands.
There are two placeholders in the following set of commands.
{dotnet-package}
This represents the .NET package you're installing, such asaspnetcore-runtime-3.1
. This is used in the followingsudo apt-get install
command.{os-version}
This represents the distribution version you're on. This is used in thewget
command below. The distribution version is the numerical value, such as20.04
on Ubuntu or10
on Debian.
First, try purging the package list:
Bash
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
Then, try to install .NET again. If that doesn't work, you can run a manual install with the following commands:
Bash
sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/{os-version}/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
Failed to fetch
While installing the .NET package, you may see an error similar to Failed to fetch ... File has unexpected size ... Mirror sync in progress?
. This error could mean that the package feed for .NET is being upgraded with newer package versions, and that you should try again later. During an upgrade, the package feed shouldn't be unavailable for more than 30 minutes. If you continually receive this error for more than 30 minutes, please file an issue at https://github.com/dotnet/core/issues.
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:
- libc6
- libgcc1
- libgssapi-krb5-2
- libicu52 (for 14.x)
- libicu55 (for 16.x)
- libicu60 (for 18.x)
- libicu66 (for 20.x)
- libssl1.0.0 (for 14.x, 16.x)
- libssl1.1 (for 18.x, 20.x)
- libstdc++6
- zlib1g
For .NET apps that use the System.Drawing.Common assembly, you also need the following dependency:
- libgdiplus (version 6.0.1 or later)
Warning
You can install a recent version of libgdiplus by adding the Mono repository to your system. For more information, see https://www.mono-project.com/download/stable/.
Next steps
- How to enable TAB completion for the .NET CLI
- Tutorial: Create a console application with .NET SDK using Visual Studio Code
Recommended content
Install .NET on Linux distributions - .NET
Learn about which versions of .NET can be installed on which versions of Linux distributions.
Install .NET on Debian - .NET
Demonstrates the various ways to install .NET SDK and .NET Runtime on Debian.
Install .NET on Linux with Snap - .NET
Demonstrates how to install either the .NET SDK or the .NET Runtime on Linux with Snap.
Install .NET on Linux without using a package manager - .NET
Demonstrates how to install the .NET SDK and the .NET Runtime on Linux without a package manager. Use the install script or manually extract the binaries.