Linux mint dotnet install

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

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

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

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

При оснастке установки .NET могут возникнуть проблемы с запуском средств .NET. Если вы хотите использовать средства .NET, рекомендуется установить .NET с помощью скрипта dotnet-install или диспетчера пакетов для конкретного дистрибутива Linux.

Это известная проблема, из-за которой dotnet watch команда не работает при установке .NET через Snap.

Если вы собираетесь использовать средства .NET или dotnet watch команду , рекомендуется установить .NET с помощью скрипта dotnet-install .

Выпуски .NET

Существует два типа поддерживаемых выпусков: выпуски с долгосрочной поддержкой (LTS) или стандартная срочная поддержка (STS). Качество всех выпусков одинаковое. Единственное различие заключается в продолжительности поддержки. Выпуски LTS получают бесплатную поддержку и исправления в течение 3 лет. Выпуски STS получают бесплатную поддержку и исправления в течение 18 месяцев. Дополнительные сведения см. в статье Политика поддержки .NET.

Читайте также:  Китайский офис для linux

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

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

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

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

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

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

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

Версия .NET Пакет Snap или канал
7 (STS) 7.0 или latest/stable
6 (LTS) 6.0 или lts/stable

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

sudo snap install dotnet-sdk --classic --channel=7.0 

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

sudo snap alias dotnet-sdk.dotnet dotnet 

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

Читайте также:  Delete folder console linux

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

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

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

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

sudo snap install dotnet-runtime-70 --classic 

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

sudo snap alias dotnet-runtime-70.dotnet dotnet 

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

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

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

export DOTNET_ROOT=/snap/dotnet-sdk/current 

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

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

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

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

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

Processing post-creation actions. Running 'dotnet restore' on /home/myhome/test/test.csproj. Restoring packages for /home/myhome/test/test.csproj. /snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj] /snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj] /snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj] 

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

export SSL_CERT_FILE=[path-to-certificate-file] export SSL_CERT_DIR=/dev/null 

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

Читайте также:  3g modems and linux
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, используйте следующую команду:

ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet 

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

Псевдоним dotnet

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

Дальнейшие действия

Источник

Оцените статью
Adblock
detector