.NET Core is supported on Ubuntu. This article describes how to install .NET Core on Ubuntu. When an Ubuntu version falls out of support, .NET Core is no longer supported with that version. However, these instructions may help you to get .NET Core running on those versions, even though it isn't supported.
A friend of mine phoned to ask if I thought he should install Ubuntu Linux on his Macs - a 1.33 GHz G4 iBook currently running OS X 10.4 'Tiger' and a 1.25 GHz Power Mac G4 tower with OS X 10.3 'Panther' installed. My friend had read a feature in the local newspaper extolling the virtues of Ubuntu Linux and thought it sounded interesting. No matter how much the elementary OS team denies it, there are resemblances to.
Q&A for Ubuntu users and developers. Stack Exchange Network. Stack Exchange network consists of 176 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. Visit Stack Exchange. If you end up falling in love with Ubuntu (like many other users that made the transition from Windows and Mac), you can then make it the primary operating system or set up a dual-boot scenario. Creating a Bootable Linux USB drive. Whether you’re trying to create a live Ubuntu bootable USB from a Windows PC or from a Mac, we got you covered.
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 Core 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 Core is already installed.
Package manager installs are only supported on the x64 architecture. Other architectures, such as ARM, must manually install the .NET Core SDK or .NET Core Runtime. For more information, see the manually install section.
Supported distributions
The following table is a list of currently supported .NET Core releases and the versions of Ubuntu they're supported on. These versions remain supported until either the version of .NET Core reaches end-of-support or the version of Ubuntu reaches end-of-life.
- A ✔️ indicates that the version of Ubuntu or .NET Core is still supported.
- A ❌ indicates that the version of Ubuntu or .NET Core isn't supported on that Ubuntu release.
- When both a version of Ubuntu and a version of .NET Core have ✔️, that OS and .NET combination are supported.
Ubuntu | .NET Core 2.1 | .NET Core 3.1 | .NET 5 Preview (manual install only) |
---|---|---|---|
✔️ 20.04 (LTS) | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 Preview |
❌ 19.10 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 Preview |
❌ 19.04 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 Preview |
❌ 18.10 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 Preview |
✔️ 18.04 (LTS) | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 Preview |
❌ 17.10 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 Preview |
❌ 17.04 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 Preview |
❌ 16.10 | ❌ 2.1 | ❌ 3.1 | ❌ 5.0 Preview |
✔️ 16.04 (LTS) | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 Preview |
The following versions of .NET Core are no longer supported. The downloads for these still remain published:
- 3.0
- 2.2
- 2.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:- 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 3.1 runtime:
aspnetcore-runtime-3.1
- Install the .NET Core 2.1 runtime:
dotnet-runtime-2.1
- 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 Core 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 Core dependencies and requirements.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-3.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-3.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-3.1
in the previous command with dotnet-runtime-3.1
.
19.10 ❌
❌ Please note that this version of Ubuntu is no longer supported.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-3.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-3.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-3.1
in the previous command with dotnet-runtime-3.1
.
19.04 ❌
❌ Please note that this version of Ubuntu is no longer supported.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-3.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-3.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-3.1
in the previous command with dotnet-runtime-3.1
.
18.10 ❌
❌ Please note that this version of Ubuntu is no longer supported.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-2.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-2.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-2.1
in the previous command with dotnet-runtime-2.1
.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-3.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-3.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-3.1
in the previous command with dotnet-runtime-3.1
.
17.10 ❌
❌ Please note that this version of Ubuntu is no longer supported.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-2.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-2.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-2.1
in the previous command with dotnet-runtime-2.1
.
17.04 ❌
❌ Please note that this version of Ubuntu is no longer supported.
Beginning Ubuntu For Windows And Mac Users Pdf
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-2.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-2.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-2.1
in the previous command with dotnet-runtime-2.1
.
16.10 ❌
❌ Please note that this version of Ubuntu is no longer supported.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-2.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-2.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-2.1
in the previous command with dotnet-runtime-2.1
.
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:
Install the SDK
.NET Core SDK allows you to develop apps with .NET Core. If you install .NET Core SDK, you don't need to install the corresponding runtime. To install .NET Core SDK, run the following commands:
Important
If you receive an error message similar to Unable to locate package dotnet-sdk-3.1, see the APT troubleshooting section.
Install the runtime
The .NET Core Runtime allows you to run apps that were made with .NET Core that didn't include the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET Core. In your terminal, run the following commands.
Important
If you receive an error message similar to Unable to locate package aspnetcore-runtime-3.1, see the APT troubleshooting section.
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that doesn't include ASP.NET Core support: replace aspnetcore-runtime-3.1
in the previous command with dotnet-runtime-3.1
.
APT update SDK or runtime
When a new patch release is available for .NET Core, you can simply upgrade it through APT with the following commands:
APT troubleshooting
This section provides information on common errors you may get while using APT to install .NET Core.
Unable to find package
Package manager installs are only supported on the x64 architecture. Other architectures, such as ARM, must manually install the .NET Core SDK or .NET Core Runtime. For more information, see the manually install section.
Unable to locate Some packages could not be installed
If you receive an error message similar to Unable to locate package {netcore-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 Core package you're installing, such asaspnetcore-runtime-3.1
. This is used in thesudo apt-get install
command below.{os-version}
This represents the Linux version you are on. This is used in thewget
command below.
First, try purging the package list:
Then, try to install .NET Core again. If that doesn't work, you can run a manual install with the following commands:
Failed to fetch
While installing the .NET Core 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 Core 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.
Snap
A snap is a bundle of an app and its dependencies that works without modification across many different Linux distributions. Snaps are discoverable and installable from the Snap Store. For more information about Snap, see Getting started with Snap.
Only supported versions of .NET Core are available through Snap.
Install the SDK
Snap packages for .NET Core 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 the coresponding runtime. The following table list the channels:
.NET Core version | Snap package |
---|---|
3.1 (LTS) | 3.1 or latest/stable |
2.1 (LTS) | 2.1 |
.NET 5.0 preview | 5.0/beta |
Use the snap install
command to install a .NET Core SDK snap package. Use the --channel
parameter to indicate which version to install. If this parameter is omitted, latest/stable
is used. In this example, 3.1
is specified:
Next, register the dotnet
command for the system with the snap alias
command:
This command is formatted as: sudo snap alias {package}.{command} {alias}
. You can choose any {alias}
name you would like. For example, you could name the command after the specific version installed by snap: sudo snap alias dotnet-sdk.dotnet dotnet31
. When you use the command dotnet31
, you'll invoke this specific version of .NET. But this is incompatible with most tutorials and examples as they expect a dotnet
command to be available.
Install the runtime
Snap packages for .NET Core Runtime are each published under their own package identifier. The following table lists the package identifiers:
.NET Core version | Snap package |
---|---|
3.1 (LTS) | dotnet-runtime-31 |
3.0 | dotnet-runtime-30 |
2.2 | dotnet-runtime-22 |
2.1 (LTS) | dotnet-runtime-21 |
Use the snap install
command to install a .NET Core Runtime snap package. In this example, .NET Core 3.1 is installed:
Next, register the dotnet
command for the system with the snap alias
command:
This command is formatted as: sudo snap alias {package}.{command} {alias}
. You can choose any {alias}
name you would like. For example, you could name the command after the specific version installed by snap: sudo snap alias dotnet-runtime-31.dotnet dotnet31
. When you use the command dotnet31
, you'll invoke this specific version of .NET. But this is incompatible with most tutorials and examples as they expect a dotnet
command to be available.
SSL Certificate errors
When .NET is installed through Snap, it's possible that on some distros the .NET SSL certificates may not be found and you may receive an error similar to the following during restore
:
To resolve this issue, set a few enviornment variables:
The certificate location will vary by distro. Here are the locations for the distros where we have experienced the issue.
- Fedora -
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
- OpenSUSE -
/etc/ssl/ca-bundle.pem
- Solus -
/etc/ssl/certs/ca-certificates.crt
Dependencies
Ubuntu For Mac Os
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:
- 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 Core 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/.
Scripted install
The dotnet-install scripts are used for automation and non-admin installs of the SDK and Runtime. You can download the script from https://dot.net/v1/dotnet-install.sh.
The script defaults to installing the latest SDK long term support (LTS) version, which is .NET Core 3.1. To install the current release, which may not be an (LTS) version, use the -c Current
parameter.
To install .NET Core Runtime instead of the SDK, use the --runtime
parameter.
You can install a specific version by altering the -c
parameter to indicate the specific version. The following command installs .NET Core SDK 3.1.
For more information, see dotnet-install scripts reference.
Manual install
As an alternative to the package managers, you can download and manually install the SDK and runtime. Manual install is usually performed as part of continuous integration testing or on an unsupported Linux distribution. For a developer or user, it's generally better to use a package manager.
If you install .NET Core SDK, you don't need to install the corresponding runtime. First, download a binary release for either the SDK or the runtime from one of the following sites:
- ✔️ .NET 5.0 preview downloads
- ✔️ .NET Core 3.1 downloads
- ✔️ .NET Core 2.1 downloads
Next, extract the downloaded file and use the export
command to set variables used by .NET Core and then ensure .NET Core is in PATH.
To extract the runtime and make the .NET Core CLI commands available at the terminal, first download a .NET Core binary release. Then, open a terminal and run the following commands from the directory where the file was saved. The archive file name may be different depending on what you downloaded.
Use the following command to extract the runtime:
Use the following command to extract the SDK:
Tip
The preceding export
commands only make the .NET Core CLI commands available 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 :$HOME/dotnet
to the end of the existing PATH
statement. If no PATH
statement is included, add a new line with export PATH=$PATH:$HOME/dotnet
.
Also, add export DOTNET_ROOT=$HOME/dotnet
to the end of the file.
This approach lets you install different versions into separate locations and choose explicitly which one to use by which application.
Next steps
On most Linux systems, including Ubuntu, there’s not a single program or tool to list all user accounts on the system… If you’re using the desktop GUI, you may be able to see all the user accounts as an administrator..
How about on servers? How do you list or view all user accounts?
Ubuntu For Mac Users Software
Since there is no single tool to list users, we usually depend on system files to list the users… All system accounts created are stored in multiple files on the server… and listing the content of these files, we can find out the list of users and groups..
This brief tutorial shows students and new users how to list user accounts on Ubuntu…Again, there are multiple ways to find out the user accounts on Ubuntu… Below are commands that when used, show you all users accounts on Ubuntu and other Linux systems…
Option 1: List User in the passwd file
One popular option for listing user accounts on Ubuntu is to view the content of the /etc/passwd file…
This file store local user account information from login name to the encrypted password and account ID… So to view all user accounts on the system run the commands below:
less /etc/passwd
When run the commands above, it should list the content of the /etc/passwd file… In there you’ll see all the accounts created on the server…
You can also use the cat /etc/passwd command to output the same list…
For students and new users this can be confusing if they don’t know how to read the content of the file… However, each line in the file is a single account identity… there are seven fields delimited by colons that contain the following:
- User name
- Encrypted password (x means that the password is stored in the /etc/shadow file)
- User ID number (UID)
- User’s group ID number (GID)
- Full name of the user (GECOS)
- User home directory
- Login shell (defaults to /bin/bash)
Now, if you just want to list the account names and not all the other details, simply run the commands below:
awk -F: '{ print $1}' /etc/passwd
That should list only the account names on the system beginning with the root account..
That’s option number 1
Option #2: Get User List via Getent Tool
Another option to get all user account on the system is to use the getend tool… This tool does similar function as the commands above.. It lists the content of the /etc/passwd file using the database info stored in the /etc/nsswitch.conf file..
To get the lists of users using the getent, run the commands below:
getent passwd
It should list the same content as above:
The /etc/nsswitch.conf is used to configure which services are to be used to determine information such as hostnames, password files, and group files…
These two options should be enough to get you list of users on Linux systems, including Ubuntu
You may also like the post below: