В публикации Установка .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 будет производится на следующие устройства:
- Плата Banana Pi BPI-M64 установлена версия Armbian_21.02.1_Bananapim64_bionic_current_5.10.12_minimal.img.xz, основанная на Ubuntu 18.04.5 LTS (Bionic Beaver), ядро Linux 5.10.34. uname: Linux bananapim64 5.10.34-sunxi64 #21.05.1 SMP Fri May 7 15:50:19 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux.
- Плата Cubietruck установлена версия Armbian_21.02.1_Cubietruck_bionic_current_5.10.12.img.xz, основанная на Ubuntu 18.04.5 LTS (Bionic Beaver), ядро Linux 5.10.43. uname: Linux cubietruck 5.10.43-sunxi #21.05.6 SMP Mon Jun 21 15:07:45 UTC 2021 armv7l armv7l armv7l GNU/Linux.
.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 в системе:
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 в системе:
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 необходимо выполнить следующие действия:
- Удалить папку /usr/share/dotnet . В противном случае старые билды .NET Runtime будут только накапливаться в системе.
- Выполнить повторно скрипт установки, за исключением последней строки создания символической ссылки (sudo ln -s …).