Install the .NET SDK or the .NET Runtime on CentOS
.NET is supported on CentOS. This article describes how to install .NET on CentOS.
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:
- Install the .NET SDK or the .NET Runtime with Snap.
- Install the .NET SDK or the .NET Runtime with a script.
- Install the .NET SDK or the .NET Runtime manually.
Supported distributions
The following table is a list of currently supported .NET releases on both CentOS 7 and CentOS 8. These versions remain supported until either the version of .NET reaches end-of-support or the version of CentOS is no longer supported.
- A ✔️ indicates that the version of CentOS or .NET is still supported.
- A ❌ indicates that the version of CentOS or .NET isn't supported on that CentOS release.
- When both a version of CentOS and a version of .NET have ✔️, that OS and .NET combination is supported.
CentOS | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 8 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 7 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
The following versions of .NET are no longer supported. The downloads for these still remain published:
- 3.0
- 2.2
- 2.0
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:
- Install the .NET SDK or the .NET Runtime with Snap.
- Install the .NET SDK or the .NET Runtime with a script.
- Install the .NET SDK or the .NET Runtime manually.
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.
CentOS 8 ✔️
.NET 5.0 is available in the default package repositories for CentOS 8.
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:
sudo dnf install dotnet-sdk-5.0
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:
sudo dnf install aspnetcore-runtime-5.0
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-5.0
in the previous command with dotnet-runtime-5.0
:
sudo dnf install dotnet-runtime-5.0
CentOS 7 ✔️
Before you install .NET, run the following commands to add the Microsoft package signing key to your list of trusted keys and add the Microsoft package repository. Open a terminal and run the following commands:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
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:
sudo yum install dotnet-sdk-5.0
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:
sudo yum install aspnetcore-runtime-5.0
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-5.0
in the previous command with dotnet-runtime-5.0
:
sudo yum install dotnet-runtime-5.0
How to install other versions
The packages added to package manager feeds are named in a hackable format: {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 .NET Core dependencies and requirements.
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.0 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 Core, see .NET dependencies and requirements.
Troubleshoot the package manager
This section provides information on common errors you may get while using the package manager 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:
- Install the .NET SDK or the .NET Runtime with Snap.
- Install the .NET SDK or the .NET Runtime with a script.
- Install the .NET SDK or the .NET Runtime manually.
Failed to fetch
While installing the .NET package, you may see an error similar to signature verification failed for file 'repomd.xml' from repository 'packages-microsoft-com-prod'
. Generally speaking, this error means 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 should not be unavailable for more than 2 hours. If you continually receive this error for more than 2 hours, 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 Core or you publish a self-contained app, you'll need to make sure these libraries are installed:
- krb5-libs
- libicu
- openssl-libs
If the target runtime environment's OpenSSL version is 1.1 or newer, you'll need to install compat-openssl10.
For more information about the dependencies, see Self-contained Linux apps.
For .NET Core apps that use the System.Drawing.Common assembly, you'll 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/.