Простая установка .NET 6 в Armbian/Linux для ARM (Raspberry/Banana/Orange/Rock/Nano Pi)

В публикации Установка .NET 5.0 для ARM выполняли установку фреймворка .NET 5.0 на Linux, для 32-х и 64-х разрядных процессоров архитектуры ARM. Для установки необходимо было выяснить архитектуру процессора и в соответствие с этим выбрать правильный пакет, затем его установить. Для упрощения процесса установки в одно действие, Microsoft подготовила скрипт dotnet-install.sh которому достаточно в качестве параметров указать версию фреймворка и путь установки. Разбираться в разрядности процессора не требуется, все максимально просто. Поэтому в данной публикации выполним установку Runtime среды и SDK .NET платформы версии 6.0, и конечно же 5.0 версии, на Linux платформу, в том числе и на x86 устройство.

Установка .NET 6.0 будет производится на следующие устройства:

.NET можно устанавливать в трех редакциях:

  • .NET Runtime — содержит только компоненты, необходимые для запуска консольного приложения.
  • ASP.NET Core Runtime — предназначен для запуска ASP.NET Core приложений, так же включает в себя .NET Runtime для запуска консольных приложений.
  • SDK — включает в себя .NET Runtime, ASP.NET Core Runtime и .NET Desktop Runtime. Позволяет кроме запуска приложений, компилировать исходный код на языках C# 9.0, F# 5.0, Visual Basic 15.9.

Установка .NET Runtime

Для установки .NET Runtime в аргументах скрипта dotnet-install.sh необходимо задать три параметра:

  • версию .NET Runtime;
  • вариант Runtime;
  • путь установки.

Версия .NET Runtime
На странице .NET and .NET Core Support Policy в таблице Supported versions, колонка Latest Patch Version, указанны последние версии Runtime среды. В качестве аргумента необходимо указать версию .NET Runtime в формате A.B, по умолчанию будет установлена последняя  версия:

  • версия 6.0.0, указываем 6.0;
  • версия 5.0.12, указываем 5.0;
  • версия 3.1.21, указываем 3.1;

Вариант Runtime
Данный параметр принимает только одно из двух значений dotnet или aspnetcore. Соответственно, dotnet — вариант .NET Runtime, а aspnetcore — ASP.NET Core Runtime.

Путь установки
Если не указать данный параметр, то по умолчанию .NET установиться в домашнюю папку пользователя, что несколько неудобно. Поэтому зададим путь для установки:  /usr/share/dotnet .

Задача: установить .NET Runtime 6 версии по пути  /usr/share/dotnet .

Скрипт установки:

sudo apt-get update
sudo apt-get install -y wget
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
sudo ./dotnet-install.sh --runtime dotnet --channel 6.0 --install-dir /usr/share/dotnet
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

Разберем скрипт установки:

  • apt-get update и apt-get install -y wget — обновление списка пакетов и установка утилиты wget для скачивания скрипта;
  • wget https://dot.net/v1/dotnet-install.sh — загрузка скрипта в текущую папку;
  • chmod +x dotnet-install.sh — выставление прав на запуск скрипта;
  • ./dotnet-install.sh —runtime dotnet —channel 6.0 —install-dir /usr/share/dotnet — выполнение скрипта установки, где параметры —runtime — вариант Runtime dotnet, —channel — параметр указывает на номер основной версии .NET в формате A.B, могу быть заданы значения: «3.1» , «5.0», «6.0», —install-dir — путь установки;
  • ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet — создание символической ссылки для возможности вызова dotnet в не зависимости от текущей рабочей папки.

По итогу установки выполним команду  dotnet —info  для проверки работы .NET в системе:

ARM64ARM32x86
root@bananapim64:~# dotnet --info

Host (useful for support):
  Version: 6.0.0
  Commit:  4822e3c3aa

.NET SDKs installed:
  No SDKs were found.

.NET runtimes installed:
  Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download
root@cubietruck:~# dotnet --info

Host (useful for support):
  Version: 6.0.0
  Commit:  4822e3c3aa

.NET SDKs installed:
  No SDKs were found.

.NET runtimes installed:
  Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download
root@ubuntuvm:~# dotnet --info

Host (useful for support):
  Version: 6.0.0
  Commit:  4822e3c3aa

.NET SDKs installed:
  No SDKs were found.

.NET runtimes installed:
  Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

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

В случает необходимости установки конкретной  версии сборки .NET, вместо параметра  —channel задается параметр —version. Например параметр —version может принимать следующие значения: «6.0.0», «5.0.12», «3.1.21» и т.д.

Задача: установить .NET Runtime версии «5.0.10» по пути  /usr/share/dotnet .

Скрипт установки:

sudo apt-get update
sudo apt-get install -y wget
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
sudo ./dotnet-install.sh --runtime dotnet --version 5.0.10 --install-dir /usr/share/dotnet
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

Установка ASP.NET Core Runtime

Задача: установить ASP.NET Core Runtime 6 версии по пути  /usr/share/dotnet .

Отличие от предыдущего варианта установки заключается только в изменение параметра —runtime на aspnetcore.

Скрипт установки:

sudo apt-get update
sudo apt-get install -y wget
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
sudo ./dotnet-install.sh --runtime aspnetcore --channel 6.0 --install-dir /usr/share/dotnet
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

Установка .NET SDK

Установка .NET SDK отличается от установки Runtime только отсутствием параметра —runtime. Соответственно параметр —channel может принимать следующие значения: «6.0», «5.0», «3.1».

Задача: установить .NET SDK версии 6.0 по пути  /usr/share/dotnet .

Скрипт установки:

sudo apt-get update
sudo apt-get install -y wget
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
export DOTNET_CLI_TELEMETRY_OPTOUT=true
sudo ./dotnet-install.sh --channel 6.0 --install-dir /usr/share/dotnet
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

Строка  export DOTNET_CLI_TELEMETRY_OPTOUT=true , отключает телеметрию, и данные об использовании SDK не отправляются на сервера Microsoft.

По итогу установки выполним команду  dotnet —info  для проверки работы .NET SDK в системе:

ARM64ARM32x86
root@bananapim64:~# dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.100
 Commit:    9e8b04bbff

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-arm64
 Base Path:   /usr/share/dotnet/sdk/6.0.100/

Host (useful for support):
  Version: 6.0.0
  Commit:  4822e3c3aa

.NET SDKs installed:
  6.0.100 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download
root@cubietruck:~# dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.100
 Commit:    9e8b04bbff

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-arm
 Base Path:   /usr/share/dotnet/sdk/6.0.100/

Host (useful for support):
  Version: 6.0.0
  Commit:  4822e3c3aa

.NET SDKs installed:
  6.0.100 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download
root@ubuntuvm:~# dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.100
 Commit:    9e8b04bbff

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         ubuntu.20.04-x64
 Base Path:   /usr/share/dotnet/sdk/6.0.100/

Host (useful for support):
  Version: 6.0.0
  Commit:  4822e3c3aa

.NET SDKs installed:
  6.0.100 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

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

Обновление

При выходе новых версий .NET необходимо выполнить следующие действия:

  1. Удалить папку  /usr/share/dotnet . В противном случае старые билды .NET Runtime будут только накапливаться в системе.
  2. Выполнить повторно скрипт установки, за исключением последней строки создания символической ссылки (sudo ln -s …).

Литература

Вам также может понравиться

About the Author: Anton

Programistik