How to install dotnet on linux

Install the .NET SDK or the .NET Runtime with Snap

Use a Snap package to install the .NET SDK or .NET Runtime. Snaps are a great alternative to the package manager built into your Linux distribution. This article describes how to install .NET through 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.

Snap packages aren’t supported in WSL2 on Windows 10. As an alternative, use the dotnet-install script or the package manager for the particular WSL2 distribution. It’s not recommended but you can try to enable snap with an unsupported workaround from the snapcraft forums.

.NET releases

Only вњ”пёЏ supported versions of .NET SDK are available through Snap. All versions of the .NET Runtime are available through snap starting with version 2.1. The following table lists the .NET (and .NET Core) releases:

вњ”пёЏ Supported вќЊ Unsupported
5.0 3.0
3.1 (LTS) 2.2
2.1 (LTS) 2.0
1.1
1.0

For more information about the life cycle of .NET releases, see .NET Core and .NET 5 Support Policy.

SDK or Runtime

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.

Install the SDK

Snap packages for the .NET 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 corresponding runtime. The following table lists the channels:

.NET version Snap package or channel
5.0 5.0 or latest/stable
3.1 (LTS) 3.1 or lts/stable
2.1 (LTS) 2.1

Use the snap install command to install a .NET 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, 5.0 is specified:

Next, register the dotnet command for the system with the snap alias command:

This command is formatted as: sudo snap alias . . You can choose any name you would like. For example, you could name the command after the specific version installed by snap: sudo snap alias dotnet-sdk.dotnet dotnet50 . When you use the command dotnet50 , you’ll invoke this specific version of .NET. But choosing a different alias is incompatible with most tutorials and examples as they expect a dotnet command to be used.

Install the runtime

Snap packages for the .NET Runtime are each published under their own package identifier. The following table lists the package identifiers:

.NET version Snap package
5.0 dotnet-runtime-50
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 Runtime snap package. In this example, .NET 5.0 is installed:

Next, register the dotnet command for the system with the snap alias command:

The command is formatted as: sudo snap alias . . You can choose any name you would like. For example, you could name the command after the specific version installed by snap: sudo snap alias dotnet-runtime-50.dotnet dotnet50 . When you use the command dotnet50 , you’ll invoke a specific version of .NET. But choosing a different alias is incompatible with most tutorials and examples as they expect a dotnet command to be available.

Export the install location

The DOTNET_ROOT environment variable is often used by tools to determine where .NET is installed. When .NET is installed through Snap, this environment variable isn’t configured. You should configure the DOTNET_ROOT environment variable in your profile. The path to the snap uses the following format: /snap//current . For example, if you installed the dotnet-sdk snap, use the following command to set the environment variable to where .NET is located:

The preceding export command only sets the environment variable 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:

/.bashrc
Korn Shell:

/.kshrc or .profile
Z Shell:

Edit the appropriate source file for your shell and add export DOTNET_ROOT=/snap/dotnet-sdk/current .

TLS/SSL Certificate errors

When .NET is installed through Snap, it’s possible that on some distros the .NET TLS/SSL certificates may not be found and you may receive an error during restore :

To resolve this problem, set a few environment variables:

The certificate location will vary by distro. Here are the locations for the distros where the issue has been experienced.

Distribution Location
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt

Troubles resolving dotnet

It’s common for other apps, such as the OmniSharp extension for Visual Studio Code, to try to resolve the location of the .NET SDK. Typically, this is done by figuring out where the dotnet executable is located. A snap-installed .NET SDK may confuse these apps. When these apps can’t resolve the .NET SDK, you’ll see an error similar to one of the following messages:

  • The SDK ‘Microsoft.NET.Sdk’ specified could not be found
  • The SDK ‘Microsoft.NET.Sdk.Web’ specified could not be found
  • The SDK ‘Microsoft.NET.Sdk.Razor’ specified could not be found

To fix this problem, symlink the snap dotnet executable to the location that the program is looking for. Two common paths the dotnet command is looking for are /usr/local/bin/dotnet and /usr/share/dotnet . For example, to link the current .NET SDK snap package, use the following command:

You can also review these GitHub issues for information about these problems:

The dotnet alias

It’s possible that if you created the dotnet alias for the snap-installed .NET, you’ll have a conflict. Use the snap unalias dotnet command to remove it, and then add a different alias if you want.

Источник

Установка пакета SDK для .NET или среды выполнения .NET вручную

Платформа .NET поддерживается в Linux. В этой статье описывается установка .NET в Linux с помощью скрипта установки или посредством извлечения двоичных файлов. Список дистрибутивов, поддерживающих встроенный диспетчер пакетов, см. в разделе Установка .NET в Linux.

Также можно установить .NET с помощью пакета Snap. Дополнительные сведения см. в разделе Установка пакета SDK для .NET или среды выполнения .NET с использованием пакета Snap.

Если вы хотите разрабатывать приложения .NET, установите пакет SDK (включает среду выполнения). Если нужно просто запустить приложения, установите среду выполнения. Если вы устанавливаете среду выполнения, мы рекомендуем установить среду выполнения ASP.NET Core, так как она включает в себя среды выполнения .NET и ASP.NET Core.

Если вы уже установили пакет SDK или среду выполнения, с помощью команд dotnet —list-sdks и dotnet —list-runtimes узнайте, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.

Выпуски .NET

В следующей таблице перечислены выпуски .NET (и .NET Core):

✔️ Поддерживается ❌ Не поддерживается
5,0 3.0
3.1 (LTS) 2.2
2.1 (LTS) 2,0
1,1
1.0

Дополнительные сведения о жизненном цикле выпусков .NET см. в разделе Политика поддержки .NET Core и .NET 5.

Зависимости

В некоторых случаях, например при установке .NET вручную, некоторые зависимости могут не устанавливаться. Ниже перечислены дистрибутивы Linux, которые поддерживаются корпорацией Майкрософт и для которых может потребоваться установка зависимостей. Дополнительные сведения см. на странице, посвященной соответствующему дистрибутиву:

Общие сведения о зависимостях см. в статье об автономных приложениях Linux.

Зависимости RPM

Если ваш дистрибутив не указан в приведенном выше списке и построен на основе RPM, могут потребоваться следующие зависимости:

Если в целевой среде выполнения установлена версия OpenSSL 1.1 или более поздняя, необходимо установить compat-openssl10.

Зависимости DEB

Если ваш дистрибутив не указан в приведенном выше списке и построен на основе Debian, могут потребоваться следующие зависимости:

Общие зависимости

Для приложений .NET, использующих сборку System.Drawing.Common, необходима также следующая зависимость:

Вы можете установить последнюю версию libgdiplus, добавив в систему репозиторий Mono. Для получения дополнительной информации см. https://www.mono-project.com/download/stable/.

Установка с помощью скрипта

Сценарии dotnet-install используются для автоматизации установок пакета SDK и среды выполнения и осуществления таких установок без прав администратора. Скрипт можно скачать на странице https://dot.net/v1/dotnet-install.sh.

![ВАЖНО] Для выполнения скрипта требуется Bash.

Этот сценарий по умолчанию устанавливает последнюю версию SDK с долгосрочной поддержкой (LTS), которой сейчас является .NET Core 3.1. Чтобы установить текущий выпуск, который может не быть версией LTS, используйте параметр -c Current .

Чтобы вместо пакета SDK установить среду выполнения .NET, используйте параметр —runtime .

Вы можете установить определенную версию, указав ее в параметре -c . Следующая команда устанавливает пакет SDK для .NET 5.0.

Установка вручную

В качестве альтернативы диспетчерам пакетов можно скачать и вручную установить пакет SDK и среду выполнения. Установка вручную как правило выполняется в рамках тестирования непрерывной интеграции или в неподдерживаемом дистрибутиве Linux. В большинстве случаев разработчикам и пользователям рекомендуется использовать диспетчер пакетов.

Сначала скачайте двоичный выпуск пакета SDK или среды выполнения с одного из следующих сайтов. При установке пакета SDK для .NET не нужно устанавливать соответствующую среду выполнения:

Затем извлеките скачанный файл и используйте команду export , чтобы задать для переменной DOTNET_ROOT расположение извлеченной папки, а затем проверьте включение .NET в переменную PATH. После этого команды .NET CLI станут доступны в терминале.

Кроме того, после скачивания двоичного файла .NET можно выполнить следующие команды из каталога, в котором сохранен файл, для извлечения среды выполнения. После этого команды .NET CLI также станут доступны в терминале, и будут заданы нужные переменные среды. Обязательно измените значение DOTNET_FILE на имя скачанного двоичного файла:

Приведенные выше команды export сделают команды .NET CLI доступными только для сеанса терминала, в котором производился запуск.

Вы можете изменить профиль оболочки, чтобы добавить команды окончательно. Существует несколько различных оболочек, доступных для Linux, и каждая из них имеет свой профиль. Пример:

    Оболочка Bash:

/.bashrc
Оболочка Korn:

/.kshrc или .profile
Оболочка Z:

Измените соответствующий исходный файл оболочки и добавьте :$HOME/dotnet в конец существующего оператора PATH . Если оператор PATH не указан, добавьте новую строку с export PATH=$PATH:$HOME/dotnet .

Кроме того, добавьте export DOTNET_ROOT=$HOME/dotnet в конец файла.

Такой подход позволяет устанавливать разные версии в отдельные расположения и выбирать, какие из них следует использовать для каждого приложения.

Источник

Установка пакета SDK для .NET или среды выполнения .NET с использованием пакета Snap

Для установки пакета SDK для .NET или среды выполнения .NET можно использовать пакет Snap. Пакеты Snap — это отличная альтернатива диспетчеру пакетов, встроенному в дистрибутив Linux. В этой статье описано, как установить .NET с использованием пакета Snap.

Snap-пакет — это пакет приложения и его зависимостей, которые работают без изменений во многих разных дистрибутивах Linux. Snap-пакеты можно найти и установить с помощью Snap Store. Дополнительные сведения о Snap см. в этой статье.

Пакеты Snap не поддерживаются в WSL2 в Windows 10. В качестве альтернативы можно использовать скрипт dotnet-install или диспетчер пакетов для соответствующего дистрибутива WSL2. Такой способ не рекомендуется, но вы можете попытаться включить пакет Snap с помощью неподдерживаемого возможного решения, описываемого на форумах snapcraft.

Выпуски .NET

В пакете Snap доступны только поддерживаемые (✔️) версии пакета SDK для .NET. Все версии среды выполнения .NET доступны в пакете Snap, начиная с версии 2.1. В следующей таблице перечислены выпуски .NET (и .NET Core):

✔️ Поддерживается ❌ Не поддерживается
5,0 3.0
3.1 (LTS) 2.2
2.1 (LTS) 2,0
1,1
1.0

Дополнительные сведения о жизненном цикле выпусков .NET см. в разделе Политика поддержки .NET Core и .NET 5.

Пакет SDK или среда выполнения

Если вы хотите разрабатывать приложения .NET, установите пакет SDK (включает среду выполнения). Если нужно просто запустить приложения, установите среду выполнения. Если вы устанавливаете среду выполнения, мы рекомендуем установить среду выполнения ASP.NET Core, так как она включает в себя среды выполнения .NET и ASP.NET Core.

Если вы уже установили пакет SDK или среду выполнения, с помощью команд dotnet —list-sdks и dotnet —list-runtimes узнайте, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.

Установка пакета SDK

Пакеты Snap для пакета SDK для .NET публикуются с одним и тем же идентификатором: dotnet-sdk . Конкретную версию пакета SDK можно установить, указав канал. Пакет SDK содержит соответствующую среду выполнения. В следующей таблице перечислены каналы.

Версия .NET Пакет Snap или канал
5,0 5.0 или latest/stable
3.1 (LTS) 3.1 или lts/stable
2.1 (LTS) 2.1

Выполните команду snap install , чтобы установить Snap-пакет пакета SDK для .NET. Используйте параметр —channel , чтобы указать, какую версию следует установить. Если этот параметр отсутствует, используйте latest/stable . В этом примере указан 5.0 :

Затем зарегистрируйте команду dotnet для системы, выполнив команду snap alias :

Эта команда имеет следующий формат: sudo snap alias . . Вы можете выбрать любое имя . Например, вы можете присвоить команде имя после установки конкретной версии с помощью Snap-пакета: sudo snap alias dotnet-sdk.dotnet dotnet50 . При использовании команды dotnet50 вы вызываете эту конкретную версию .NET. Выбор другого псевдонима несовместим с инструкциями из большинства учебников и примеров, так как в них требуется использовать команду dotnet .

Установка среды выполнения

Пакеты Snap для среды выполнения .NET публикуются с собственными идентификаторами пакета. В следующей таблице перечислены идентификаторы пакетов:

Версия .NET Snap-пакет
5,0 dotnet-runtime-50
3.1 (LTS) dotnet-runtime-31
3.0 dotnet-runtime-30
2.2 dotnet-runtime-22
2.1 (LTS) dotnet-runtime-21

Выполните команду snap install , чтобы установить Snap-пакет среды выполнения .NET. В этом примере устанавливается .NET 5.0:

Затем зарегистрируйте команду dotnet для системы, выполнив команду snap alias :

Эта команда имеет следующий формат: sudo snap alias . . Вы можете выбрать любое имя . Например, вы можете присвоить команде имя после установки конкретной версии с помощью Snap-пакета: sudo snap alias dotnet-runtime-50.dotnet dotnet50 . При использовании команды dotnet50 вы вызываете эту конкретную версию .NET. Выбор другого псевдонима несовместим с инструкциями из большинства учебников и примеров, так как в них требуется команда dotnet .

Экспорт расположения установки

Переменная среды DOTNET_ROOT часто используется различными средствами для определения места установки .NET. При установке .NET с помощью snap-пакета эта переменная среды не настраивается. Вам нужно настроить переменную среды DOTNET_ROOT в своем профиле. Путь к snap-пакету использует следующий формат: /snap//current . Например, если вы установили snap-пакет dotnet-sdk , используйте следующую команду, чтобы задать для переменной среды место расположения .NET:

Предыдущая команда export задает переменную среды только для сеанса терминала, в котором она была запущена.

Вы можете изменить профиль оболочки, чтобы добавить команды окончательно. Существует несколько различных оболочек, доступных для Linux, и каждая из них имеет свой профиль. Пример:

    Оболочка Bash:

/.bashrc
Оболочка Korn:

/.kshrc или .profile
Оболочка Z:

Измените соответствующий исходный файл для своей оболочки и добавьте export DOTNET_ROOT=/snap/dotnet-sdk/current .

Ошибки сертификатов TLS/SSL

При установке .NET с помощью пакета Snap возможно, что на некоторых дистрибутивах нельзя найти сертификаты TLS/SSL .NET, а во время выполнения restore может отобразиться сообщение об ошибке:

Чтобы устранить эту проблему, задайте несколько переменных среды:

Расположение сертификата зависит от дистрибутива. Ниже приведены расположения для дистрибутивов, в которых возникла проблема.

Distribution Расположение
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt

Решение проблем с dotnet

Другие приложения, такие как расширение OmniSharp для Visual Studio Code, обычно попытаются определить расположение пакета SDK для .NET. Как правило, это делается путем выяснения места расположения исполняемого файла dotnet . Установленный с помощью Snap, пакет SDK для .NET может запутать эти приложения. Если эти приложения не смогут обнаружить пакет SDK для .NET, появиться сообщение об ошибке, аналогичное одному из следующих сообщений:

  • Не удалось найти указанный пакет SDK «Microsoft.NET.Sdk»
  • Не удалось найти указанный пакет SDK «Microsoft.NET.Sdk.Web»
  • Не удалось найти указанный пакет SDK «‘Microsoft.NET.Sdk.Razor»

Чтобы решить эту проблему, создайте символическую ссылку на исполняемый файл snap dotnet в том месте, которое ищет программа. Два общих пути, которые ищет команда dotnet , — /usr/local/bin/dotnet и /usr/share/dotnet . Например, чтобы связать текущий прикрепленный пакет SDK для .NET, используйте следующую команду:

Также можно просмотреть эти проблемы GitHub для получения сведений об этих трудностях:

Псевдоним dotnet

Если вы создали псевдоним dotnet для привязки .NET, существует вероятность, что у вас возникнет конфликт. Удалите его с помощью команды snap unalias dotnet , а затем при необходимости добавьте другой псевдоним.

Источник

Читайте также:  Эмуляторы dendy mac os
Оцените статью