Prerequisites for .NET Core on Linux

This article shows the dependencies needed to develop .NET Core applications on Linux. The supported Linux distributions/versions, and dependencies that follow apply to the two ways of developing .NET Core apps on Linux:

Note

The .NET Core SDK package is not required for production servers/environments. Only the .NET Core runtime package is needed for apps deployed to production environments. The .NET Core runtime is deployed with apps as part of a self-contained deployment, however, it must be deployed for Framework-dependent deployed apps separately. For more information about framework-dependent and self-contained deployment types, see .NET Core application deployment. Also see Self-contained Linux applications for specific guidelines.

Supported Linux versions

.NET Core 2.x treats Linux as a single operating system. There is a single Linux build (per chip architecture) for supported Linux distributions.

For download links and more information, see .NET Core 2.2 downloads or .NET Core 2.1 downloads.

.NET Core 2.x is supported on the following Linux distributions/versions:

  • Red Hat Enterprise Linux 7, 6 - 64-bit (x86_64 or amd64)
  • CentOS 7 - 64-bit (x86_64 or amd64)
  • Oracle Linux 7 - 64-bit (x86_64 or amd64)
  • Fedora 28, 27 - 64-bit (x86_64 or amd64)
  • Debian 9 (64-bit, arm32), 8.7 or later versions - 64-bit (x86_64 or amd64)
  • Ubuntu 18.04 (64-bit, arm32), 16.04, 14.04 - 64-bit (x86_64 or amd64)
  • Linux Mint 18, 17 - 64-bit (x86_64 or amd64)
  • openSUSE 42.3 or later versions - 64-bit (x86_64 or amd64)
  • SUSE Enterprise Linux (SLES) 12 Service Pack 2 or later - 64-bit (x86_64 or amd64)
  • Alpine Linux 3.7 or later versions - 64-bit (x86_64 or amd64)

See .NET Core 2.1 Supported OS Versions and .NET Core 2.2 Supported OS Versions for the complete list of .NET Core 2.1 and .NET Core 2.2 supported operating systems, distributions and versions, out of support OS versions, and lifecycle policy links.

Linux distribution dependencies

The following are intended to be examples. The exact versions and names may vary slightly on your Linux distribution of choice.

Ubuntu

Ubuntu distributions require the following libraries installed:

  • liblttng-ust0
  • libcurl3
  • libssl1.0.0
  • libkrb5-3
  • zlib1g
  • libicu52 (for 14.x)
  • libicu55 (for 16.x)
  • libicu57 (for 17.x)
  • libicu60 (for 18.x)

For versions earlier than .NET Core 2.1, following dependencies are also required:

  • libunwind8
  • libuuid1

CentOS and Fedora

CentOS distributions require the following libraries installed:

  • lttng-ust
  • libcurl
  • openssl-libs
  • krb5-libs
  • libicu
  • zlib

Fedora users: If your openssl's version >= 1.1, you'll need to install compat-openssl10.

For versions earlier than .NET Core 2.1, following dependencies are also required:

  • libunwind
  • libuuid

For more information about the dependencies, see Self-contained Linux applications.

Installing .NET Core dependencies with the native installers

.NET Core native installers are available for supported Linux distributions/versions. The native installers require admin (sudo) access to the server. The advantage of using a native installer is that all of the .NET Core native dependencies are installed. Native installers also install the .NET Core SDK system-wide.

On Linux, there are two installer package choices:

  • Using a feed-based package manager, such as apt-get for Ubuntu, or yum for CentOS/RHEL.
  • Using the packages themselves, DEB or RPM.

Scripting Installs with the .NET Core installer script

The dotnet-install scripts are used to perform a non-admin install of the CLI toolchain and the shared runtime. You can download the script from https://dot.net/v1/dotnet-install.sh.

The script defaults to installing the latest "LTS" version, which is currently .NET Core 1.1. To install .NET Core 2.1, run the script with the following switch:

./dotnet-install.sh -c Current

The installer bash script is used in automation scenarios and non-admin installations. This script also reads PowerShell switches, so they can be used with the script on Linux/OS X systems.

Troubleshoot

If you have problems with a .NET Core installation on a supported Linux distribution/version, consult the following topics for your installed distributions/versions: