Эльбрус/dotnet

Материал из ALT Linux Wiki

Net Core 3.1

  1. Получите SDK у МЦСТ.
  2. Распакуйте содержимое в /opt/mcst/dotnet
  3. Установите переменную окружения к dotnet: export PATH=/opt/mcst/dotnet:$PATH
    1. Отключаем проверку сокетов (нужно для работы NuGet): export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0
    2. Отключаем ETW, если не нужно трассирование и счётчики перформанса: export COMPlus_EnableDiagnostics=0

Проверяем:

:~$ dotnet --info

Пакет SDK для .NET Core (отражающий любой global.json):
 Version:   3.1.114
 Commit:    07ddd844dc

Среда выполнения:
 OS Name:     elbrus
 OS Version:  6
 OS Platform: Linux
 RID:         ubuntu.16.04-x64
 Base Path:   /opt/mcst/dotnet/sdk/3.1.114/

Host (useful for support):
  Version: 3.1.12
  Commit:  1dbb9c89c3

.NET Core SDKs installed:
  3.1.114 [/opt/mcst/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.1.14 [/opt/mcst/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.14 [/opt/mcst/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Проблема:

  • Прикидываемся X64 (RID: ubuntu.16.04-x64)
  • Нужно собирать нативные .so зависимости и размещать в runtime/native/<rid>
  • Пока нет понятия E2K в рантайме и типах.

ALT

По состоянию на начало апреля 2022 года можно установить пакет dotnet-bootstrap-3.1 из sisyphus_e2k либо p10_e2k:

# apt-get install dotnet-bootstrap-3.1

и далее:

$ export PATH=/usr/lib64/dotnet-bootstrap-3.1:$PATH DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 COMPlus_EnableDiagnostics=0
$ dotnet --info

(работу с переменными можно занести в ~/.bashrc или в настройки шелла по вкусу)

Пример правки .bashrc

Можно добавить в файл ~/.bashrc путь к dotnet через переменную DOTNET_ROOT, которая потребуется при запуске не self-contained приложений:

DOTNET_ROOT="/opt/mcst/dotnet"
PATH=$PATH:$DOTNET_ROOT
DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0
export DOTNET_ROOT PATH DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER