- Install .NET SDK or .NET Runtime on Ubuntu 20.04
- Supported versions
- Add the Microsoft package repository
- Install the SDK
- Install the runtime
- How to install other versions
- Examples
- Package missing
- Troubleshooting
- Dependencies
- Next steps
- Установка .NET в Linux с помощью скрипта установки или извлечения двоичных файлов
- Выпуски .NET
- Зависимости
- Зависимости RPM
- Зависимости DEB
- Общие зависимости
- Установка с помощью скрипта
- Установка вручную
- Настройка переменных среды на уровне системы
- Дальнейшие действия
Install .NET SDK or .NET Runtime on Ubuntu 20.04
This article discusses how to install .NET on Ubuntu 20.04; .NET 6 and .NET 7 are supported.
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.
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.
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:
Supported versions
The following versions of .NET are supported or available for Ubuntu 20.04:
Supported .NET versions | Available in Ubuntu feed | Available in Microsoft feed |
---|---|---|
7.0, 6.0 | None | 7.0. 6.0, 5.0, 3.1, 2.1 |
When an Ubuntu version falls out of support, .NET is no longer supported with that version.
The following versions of .NET are ❌ no longer supported:
- .NET 5
- .NET Core 3.1
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
Add the Microsoft package repository
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:
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:
sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-7.0
If you receive an error message similar to Unable to locate package dotnet-sdk-7.0, see the 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:
sudo apt-get update && \ sudo apt-get install -y aspnetcore-runtime-7.0
If you receive an error message similar to Unable to locate package aspnetcore-runtime-7.0, see the 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-7.0 in the previous command with dotnet-runtime-7.0 :
sudo apt-get install -y dotnet-runtime-7.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
The type of .NET product to install. Valid options are:- dotnet
- aspnetcore
- sdk (only available for the dotnet product)
- runtime
- 7.0
- 5.0
- 3.1
- 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 7.0 runtime: aspnetcore-runtime-7.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-7.0 is incorrect and should be dotnet-sdk-7.0 . For a list of Linux distributions supported by .NET, see .NET dependencies and requirements.
Troubleshooting
If you run into issues installing or even running .NET, see Troubleshooting.
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
- libicu66
- libssl1.1
- libstdc++6
- zlib1g
If the .NET app uses the System.Drawing.Common assembly, libgdiplus will also need to be installed. Because System.Drawing.Common is no longer supported on Linux, this only works on .NET 6 and requires setting the System.Drawing.EnableUnixSupport runtime configuration switch.
You can install a recent version of libgdiplus by adding the Mono repository to your system.
Next steps
Установка .NET в Linux с помощью скрипта установки или извлечения двоичных файлов
В этой статье показано, как установить пакет SDK для .NET или среду выполнения .NET в Linux с помощью скрипта установки или извлечения двоичных файлов. Список дистрибутивов, поддерживающих встроенный диспетчер пакетов, см. в разделе Установка .NET в Linux.
Если вы хотите разрабатывать приложения .NET, установите пакет SDK (включает среду выполнения). Если нужно просто запустить приложения, установите среду выполнения. Если вы устанавливаете среду выполнения, мы рекомендуем установить среду выполнения ASP.NET Core, так как она включает в себя среды выполнения .NET и ASP.NET Core.
dotnet —list-sdks Используйте команды и dotnet —list-runtimes , чтобы узнать, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.
Выпуски .NET
Существует два типа поддерживаемых выпусков: выпуски долгосрочной поддержки (LTS) или стандартная техническая поддержка (STS). Качество всех выпусков одинаковое. Единственное различие заключается в длине опоры. Выпуски LTS получают бесплатную поддержку и исправления в течение 3 лет. Выпуски STS получают бесплатную поддержку и исправления в течение 18 месяцев. Дополнительные сведения см. в разделе Политика поддержки .NET.
В следующей таблице перечислены состояния поддержки каждой версии .NET (и .NET Core):
✔️ Поддерживается ❌ Не поддерживается 7 (STS) 5 6 (LTS) 3.1 3.0 2.2 2.1 2,0 1,1 1.0 Зависимости
В некоторых случаях, например при установке .NET вручную, некоторые зависимости могут не устанавливаться. Ниже перечислены дистрибутивы Linux, которые поддерживаются корпорацией Майкрософт и для которых может потребоваться установка зависимостей. Дополнительные сведения см. на странице, посвященной соответствующему дистрибутиву:
Общие сведения о зависимостях см. в статье об автономных приложениях Linux.
Зависимости RPM
Если ваш дистрибутив не указан в приведенном выше списке и построен на основе RPM, могут потребоваться следующие зависимости:
Если в целевой среде выполнения установлена версия OpenSSL 1.1 или более поздняя, необходимо установить compat-openssl10.
Зависимости DEB
Если ваш дистрибутив не указан в приведенном выше списке и построен на основе Debian, могут потребоваться следующие зависимости:
- libc6
- libgcc1
- libgssapi-krb5-2
- libicu67
- libssl1.1
- libstdc++6
- zlib1g
Общие зависимости
Если приложение .NET использует сборку System.Drawing.Common , необходимо также установить libgdiplus. Так как System.Drawing.Common больше не поддерживается в Linux, это работает только в .NET 6 и требует настройки System.Drawing.EnableUnixSupport параметра конфигурации среды выполнения.
Обычно можно установить последнюю версию libgdiplus , добавив репозиторий Mono в систему.
Установка с помощью скрипта
Сценарии dotnet-install используются для автоматизации установок пакета SDK и среды выполнения и осуществления таких установок без прав администратора. Скрипт можно скачать по ссылке https://dot.net/v1/dotnet-install.sh. При установке .NET таким образом необходимо установить зависимости, необходимые для дистрибутива Linux. Используйте ссылки в статье Установка .NET в Linux для конкретного дистрибутива Linux.
Для выполнения скрипта требуется Bash.
Скрипт можно скачать с помощью wget :
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
Перед запуском этого скрипта необходимо предоставить этому скрипту разрешение на запуск в качестве исполняемого файла:
sudo chmod +x ./dotnet-install.sh
Скрипт по умолчанию устанавливает последнюю версию пакета SDK для долгосрочной поддержки (LTS ), которая является .NET 6. Чтобы установить последний выпуск, который может не быть версией (LTS), используйте —version latest параметр .
./dotnet-install.sh --version latest
Чтобы вместо пакета SDK установить среду выполнения .NET, используйте параметр —runtime .
./dotnet-install.sh --version latest --runtime aspnetcore
Вы можете установить определенную основную версию с параметром —channel , чтобы указать конкретную версию. Следующая команда устанавливает пакет SDK для .NET 7.0.
./dotnet-install.sh --channel 7.0
Сведения о включении .NET в командной строке см. в статье Установка переменных среды для всей системы.
Установка вручную
В качестве альтернативы диспетчерам пакетов можно скачать и вручную установить пакет SDK и среду выполнения. Установка вручную как правило выполняется в рамках тестирования непрерывной интеграции или в неподдерживаемом дистрибутиве Linux. В большинстве случаев разработчикам и пользователям рекомендуется использовать диспетчер пакетов.
Скачайте двоичный выпуск пакета SDK или среды выполнения с одного из следующих сайтов. Пакет SDK для .NET включает соответствующую среду выполнения:
Извлеките скачанный файл и используйте export команду , чтобы задать DOTNET_ROOT расположение извлеченной папки, а затем убедитесь, что .NET находится в path. DOTNET_ROOT Экспорт делает команды .NET CLI доступными в терминале. Дополнительные сведения о переменных среды .NET см. в разделе .NET SDK и переменные среды CLI.
Кроме того, после скачивания двоичного файла .NET можно выполнить следующие команды из каталога, в котором сохранен файл, для извлечения среды выполнения. Выполнение следующих команд делает команды .NET CLI доступными в терминале и задает необходимые переменные среды. Обязательно измените значение DOTNET_FILE на имя скачанного двоичного файла:
DOTNET_FILE=dotnet-sdk-7.0.100-linux-x64.tar.gz export DOTNET_ROOT=$(pwd)/.dotnet mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT" export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
Приведенный выше подход к скриптам установки позволяет устанавливать разные версии в разных расположениях, чтобы можно было явно выбрать, какое из них следует использовать для какого приложения.
Настройка переменных среды на уровне системы
Если вы использовали предыдущий скрипт установки, заданные переменные применяются только к текущему сеансу терминала. Добавьте их в профиль оболочки. Существует несколько различных оболочек, доступных для Linux, и каждая из них имеет свой профиль. Пример:
Задайте следующие две переменные среды в профиле оболочки:
- DOTNET_ROOT Для этой переменной задана папка , в которую была установлена платформа .NET, например $HOME/.dotnet :
export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools
Дальнейшие действия