DevDotNet.ORG
Embedded Systems, IoT, .NET, Docker, Hosting, Linux
Простая установка .NET 6 в Armbian/Linux для ARM (Raspberry/Banana/Orange/Rock/Nano Pi)
Создано автором Anton 22.11.2021 в .NET
В публикации Установка .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 в системе:
ARM64 ARM32 x86
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-downloadroot@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-downloadroot@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 в системе:
ARM64 ARM32 x86
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-downloadroot@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-downloadroot@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 …).
Литература
- GitHub — dotnet/install-scripts
- GitHub — .NET Release Notes
- .NET and .NET Core Support Policy — Microsoft Docs
- dotnet-install scripts reference — Microsoft Docs
- .NET SDK telemetry — Docs .NET Microsoft
- Install the .NET SDK or the .NET Runtime manually — Docs .NET Microsoft
Обновления ASP.NET Core в .NET 6 Preview 1
Новая версия .NET, 6 Preview 1, уже доступна и готова к вашей оценке. Это первая предварительная версия .NET 6, следующего крупного обновления платформы .NET. Ожидается, что .NET 6 поступит в полноценный доступ в ноябре этого года и будет выпуском с долгосрочной поддержкой (LTS).
Если вы работаете с Windows и используете Visual Studio, мы рекомендуем установить последнюю предварительную версию Visual Studio 2019 16.9. Если вы используете macOS, мы рекомендуем установить последнюю предварительную версию Visual Studio 2019 для Mac 8.9.
Основная работа, запланированная с ASP.NET Core в .NET 6
.NET 6 использует открытый процесс планирования, поэтому вы можете изучить все основные темы, запланированные для этого релиза, на Blazor-веб-сайте themesof.net. В дополнение к этим верхнеуровневым темам мы собираемся также предоставить множество улучшений, ориентированных на пользователей. Вы можете найти список основных задач, запланированных для ASP.NET Core в .NET 6, в нашем выпуске дорожной карты. Вот некоторые из основных функций ASP.NET Core, запланированных для выпуска .NET 6:
- Горячая перезагрузка: быстро обновляйте пользовательский интерфейс и код для работающих приложений без потери состояния приложения для более быстрой и продуктивной разработки.
- Микро API: Упростите создание конечных точек API с гораздо меньшим количеством кода и церемоний.
- Публикация в виде одного файла: создавайте небольшие автономные высокопроизводительные приложения и службы.
- Компиляция WebAssembly с опережением времени (AoT): компилируйте код .NET в приложениях Blazor WebAssembly непосредственно в WebAssembly при публикации для значительного повышения производительности во время выполнения.
- Обновленная поддержка одностраничных приложений (SPA). Обновите интеграцию SPA в ASP.NET Core для бесперебойной работы с последними современными интерфейсными платформами JavaScript.
- Гибридные настольные приложения Blazor: объедините лучшее из пользовательского интерфейса многоплатформенных приложений Blazor и .NET для создания кроссплатформенных гибридных настольных приложений.
- HTTP/3: добавьте поддержку HTTP/3 и QUIC на поддерживаемые серверы ASP.NET Core.
Мы приветствуем отзывы и участие в процессе планирования и создания на GitHub.
Что нового в ASP.NET Core в .NET 6 Preview 1?
- Поддержка IAsyncDisposable в MVC
- DynamicComponent
- Input ElementReference разделен на релевантные компоненты
- dotnet watch теперь является dotnet watch run по дефолту
- Nullable reference type annotations
Начало работы
Чтобы начать работу с ASP.NET Core в .NET 6 Preview 1, установите .NET 6 SDK.
Обновление существующего проекта
Чтобы обновить существующее приложение ASP.NET Core с .NET 5 до .NET 6 Preview 1:
- Обновите целевую платформу для вашего приложения, до net6.0 .
- Обновите все ссылки на пакеты Microsoft.AspNetCore.* до 6.0.0-preview.1.* .
- Обновите все ссылки на пакеты Microsoft.Extensions.* до 6.0.0-preview.1.* .
См. полный список критических изменений в ASP.NET Core для .NET 6 здесь.
DynamicComponent
DynamicComponent - это новый встроенный компонент Blazor, который можно использовать для динамической визуализации компонента, указанного по типу.
Параметры могут быть переданы визуализируемому компоненту с помощью dictionary:
@code < Type someType = . IDictionarymyDictionaryOfParameters = . >
InputElementReference разделен на релевантные компоненты
Соответствующие встроенные компоненты Blazor ввода теперь предоставляют удобную ссылку ElementReference для базового ввода, что упрощает распространенные сценарии, такие как установка фокуса пользовательского интерфейса на вводе. Затронутые компоненты: InputCheckbox, InputDate, InputFile, InputNumber, InputSelect, InputText и InputTextArea.
dotnet watch теперь является dotnet watch run по дефолту
Запуск dotnet watch теперь будет запускать dotnet watch run по умолчанию, экономя драгоценное время ввода.
Nullable Reference Type Annotations
Мы применяем аннотации обнуляемости к частям ASP.NET Core. Значительное количество новых API было аннотировано в .NET 6 Preview 1.
Используя новую функцию C# 8, ASP.NET Core может обеспечить дополнительную безопасность во время компиляции при обработке ссылочных типов, например защиту от исключений нулевых ссылок. Проекты, которые выбрали использование аннотаций, допускающих значение NULL, могут видеть новые предупреждения во время сборки от API-интерфейсов ASP.NET Core.
Чтобы включить ссылочные типы, допускающие значение NULL, вы можете добавить в файл проекта следующее свойство:
enable
Как установить net core 6
.NET Core - это универсальный открытый инструмент разработки, разработанный компанией Microsoft и .NET community на GitHub. .NET Core является кросс-платформенной средой разработки (поддерживается Windows, macOS и Linux) и может быть использовано для создания приложений для устройств, облаков и интернета вещей
Загрузка и установка .Net Core:
Установочный дистрибутив .Net Core доступен для скачивания на сайте Microsoft по ссылке https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
Для скачивания дистрибутива необходимо выбрать ОС Debian 9 из выпадающего списка, после чего начнется загрузка файла.
Далее необходимо добавить открытый ключ gpg следующими командами:
- wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg –dearmor > microsoft.asc.gpg
- sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
- wget -q https://packages.microsoft.com/config/debian/9/prod.list
- sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
- sudo chown root: root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
- sudo chown root: root /etc/apt/sources.list.d/microsoft-prod.list
Загрузка и установка Visual Studio Code Editor
Visual Studio Code Editor доступен для скачивания с помощью браузера по ссылке: https://code.visualstudio.com/docs/?dv=linux64_deb
После скачивания редактор может быть установлен командами (для версии, доступной на момент написания статьи):
sudo dpkg -i code_1.30.2-1546901646_amd64.deb
После установки редактор доступен в графическом меню в разделе «Программирование» или через командную строку: /usr/bin/code