龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本
龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行安全更新和错误修复,并持续进行性能优化。社区.NET7版本开始已经原生支持LoongArch64架构源码。具备如下特性:
- 跟进社区最新版本,获取及时的安全更新和问题修复
- 支持多OS:Loongnix、统信UOS、中标麒麟等64位操作系统
- 支持LoongArch架构
- 明确的、多版本的产品维护计划
- 专业团队支持
龙芯最近发布的LoongArch64架构的.NET6.0-SDK是基于上游社区.NET6.0-LTS-SDK制作的,同样是LTS版本,在生命周期维护范围内,会持续进行更新升级。龙芯同时发布了.NET 文档网站:http://docs.loongnix.cn/dotnet/
龙芯LoongArch64版.NET 6 下载地址:http://www.loongnix.cn/zh/api/dotnet
对应的上游社区版本为.NET 6,tag: v6.0.105-SDK, tag: v6.0.5-runtime。
开发过程中可能需要依赖一些平台相关的 nupkg 资源,可在龙芯Nuget源搜索下载:http://nuget.loongnix.cn:5000/。相关配置方法请见龙芯Nuget源配置方法。
特性预览:
runtime 支持默认原生分层编译及优化特性;
支持 libSystem.IO.Ports.Native.so 串口库 (通过龙芯Nuget源下载);
支持 libSkiaSharp.so、libHarfBuzzSharp.so 图形库 (通过龙芯Nuget源下载);
支持 SQLite 本地数据库 (通过龙芯Nuget源下载);
支持 dotnet-sdk 各子模块单独分包安装,安装方法请见.NET6安装说明
龙芯Nuget源配置方法:
在龙芯Nuget源上,可以找到一些包含 LoongArch64 架构平台相关文件的 nupkg 包。 你需要修改本地 ~/.nuget/NuGet/Nuget.config 配置文件,添加龙芯 Nuget 源,以支持相关 nupkg 包的下载。或者手动在龙芯 Nuget 源下载,解压到本地 ~/.nuget/packages/ 对应目录下使用。
$ cat ~/.nuget/NuGet/NuGet.Config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="local" value="http://nuget.loongnix.cn:5000/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
龙芯.NET 6安装方法
当前支持 dotnet-sdk 各子模块单独分包安装,各子模块如下:
- aspnetcore-runtime-6.0
- aspnetcore-targeting-pack-6.0
- dotnet-apphost-pack-6.0
- dotnet-host-6.0
- dotnet-hostfxr-6.0
- dotnet-runtime-6.0
- dotnet-runtime-deps-6.0
- dotnet-sdk-6.0
- dotnet-targeting-pack-6.0
- netstandard-targeting-pack-2.1
使用包管理器离线安装/卸载
- 从 下载页面 下载安装包,请确认所使用的版本。
- 安装/卸载:(以 dotnet-sdk-6.0.105-ea1 loongarch64 示例)
deb
离线安装命令,需要注意安装包顺序
$ sudo apt install ./dotnet-host-6.0.5-ea1-loongarch64.deb \
./dotnet-hostfxr-6.0.5-ea1-loongarch64.deb \
./dotnet-runtime-deps-6.0.5-ea1-loongarch64.deb \
./dotnet-runtime-6.0.5-ea1-loongarch64.deb \
./dotnet-targeting-pack-6.0.5-ea1-loongarch64.deb \
./aspnetcore-targeting-pack-6.0.5-ea1-loongarch64.deb \
./dotnet-apphost-pack-6.0.5-ea1-loongarch64.deb \
./aspnetcore-runtime-6.0.5-ea1-loongarch64.deb \
./netstandard-targeting-pack-2.1_2.1.0-1_ea1-loongarch64.deb \
./dotnet-sdk-6.0.105-ea1-loongarch64.deb
# 卸载:
$ sudo apt remove dotnet-runtime-deps-6.0 \
dotnet-apphost-pack-6.0 \
dotnet-host \
dotnet-hostfxr-6.0 \
dotnet-runtime-6.0 \
dotnet-sdk-6.0 \
dotnet-targeting-pack-6.0 \
aspnetcore-runtime-6.0 \
aspnetcore-targeting-pack-6.0 \
netstandard-targeting-pack-2.1
rpm
# 离线安装命令,需要注意安装包顺序 - Loongnix Server RPM
$ sudo yum install dotnet-host-6.0.5-ea1.loongarch64.rpm \
dotnet-hostfxr-6.0-6.0.5-ea1.loongarch64.rpm \
dotnet-runtime-deps-6.0-6.0.5-ea1.loongarch64.rpm \
dotnet-runtime-6.0-6.0.5-ea1.loongarch64.rpm \
dotnet-targeting-pack-6.0-6.0.5-ea1.loongarch64.rpm \
aspnetcore-targeting-pack-6.0-6.0.5-ea1.loongarch64.rpm \
dotnet-apphost-pack-6.0-6.0.5-ea1.loongarch64.rpm \
aspnetcore-runtime-6.0-6.0.5-ea1.loongarch64.rpm \
netstandard-targeting-pack-2.1-2.1.0-ea1.loongarch64.rpm \
dotnet-sdk-6.0-6.0.105-ea1.loongarch64.rpm
# 离线安装命令,需要注意安装包顺序 - 麒麟v10 RPM
$ sudo yum install dotnet-host-6.0.5-ea1.a.ky10.loongarch64.rpm \
dotnet-hostfxr-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
dotnet-runtime-deps-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
dotnet-runtime-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
dotnet-targeting-pack-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
aspnetcore-targeting-pack-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
dotnet-apphost-pack-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
aspnetcore-runtime-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
netstandard-targeting-pack-2.1-2.1.0-ea1.a.ky10.loongarch64.rpm \
dotnet-sdk-6.0-6.0.105-ea1.a.ky10.loongarch64.rpm
# 卸载:
$ sudo yum remove dotnet-runtime-deps-6.0 \
dotnet-apphost-pack-6.0 \
dotnet-host \
dotnet-hostfxr-6.0 \
dotnet-runtime-6.0 \
dotnet-sdk-6.0 \
dotnet-targeting-pack-6.0 \
aspnetcore-runtime-6.0 \
aspnetcore-targeting-pack-6.0 \
netstandard-targeting-pack-2.1
使用包管理器在线安装/卸载
deb
# 在线安装
$ sudo apt install dotnet-sdk-6.0
# 卸载:
$ sudo apt remove dotnet-runtime-deps-6.0 \
dotnet-apphost-pack-6.0 \
dotnet-host \
dotnet-hostfxr-6.0 \
dotnet-runtime-6.0 \
dotnet-sdk-6.0 \
dotnet-targeting-pack-6.0 \
aspnetcore-runtime-6.0 \
aspnetcore-targeting-pack-6.0 \
netstandard-targeting-pack-2.1
rpm
# 在线安装
$ sudo yum install dotnet-sdk-6.0
# 卸载:
$ sudo yum remove dotnet-runtime-deps-6.0 \
dotnet-apphost-pack-6.0 \
dotnet-host \
dotnet-hostfxr-6.0 \
dotnet-runtime-6.0 \
dotnet-sdk-6.0 \
dotnet-targeting-pack-6.0 \
aspnetcore-runtime-6.0 \
aspnetcore-targeting-pack-6.0 \
netstandard-targeting-pack-2.1
查看安装结果
$ whereis dotnet
dotnet: /usr/bin/dotnet /usr/share/dotnet /usr/share/man/man1/dotnet.1.gz
查看 .NET 版本
更多关于 .NET 的使用方法及示例,请参考 .NET在线文档
### 查看SDK版本:
可使用终端查看当前安装的 .NET Core SDK 版本。 打开终端并运行以下命令。
dotnet --list-sdks
查看运行时版本:
可使用以下命令查看当前安装的 .NET Core 运行时版本。
dotnet --list-runtimes
详细信息:
可通过以下命令查看 SDK 版本和运行时版本。 你还将获得其他环境相关信息,如操作系统版本和运行时标识符 (RID)。
dotnet --info
龙芯LoongArch64版.NET版本发布说明
上游社区仓库从 .NET7 已原生支持 LoongArch64 架构,龙芯发布的 LoongArch64 架构 SDK ,分两种版本类型:
- 试用版: 其中安装包名字中包含"ea"
- 例如龙芯基于上游社区 SDK 6.0.105 版本发布的 LoongArch64 ea 版本 deb 安装包名为: dotnet-sdk-6.0.105-ea1-loongarch64.deb
- 正式版: 稳定版本
- 例如龙芯基于上游社区 SDK 6.0.105 版本发布的 LoongArch64 正式版本 deb 安装包名为: dotnet-sdk-6.0.105-1-loongarch64.deb
如何在LoongArch平台支持SkiaSharp?
由于SkiaSharp中包含平台相关代码,所以引用SkiaSharp的项目需要引用LoongArch版本的nupkg,同时一般还需要引用HarfBuzzSharp包。
支持的方法有如下两种。
配置龙芯Nuget源,添加包引用
参考龙芯Nuget源配置页面添加龙芯nuget源的配置。 在项目配置文件中添加对SkiaSharp和HarfBuzzSharp的引用,参考命令如下:
cd project-src # 进入到项目源码目录中
dotnet add package SkiaSharp.NativeAssets.Linux --version 2.80.3
dotnet add package HarfBuzzSharp.NativeAssets.Linux --version 2.6.1
执行上述命令后,注意查看shell是否有从nuget.loongnix.cn下载nupkg包的输出,如下:
info : Adding PackageReference for package 'SkiaSharp.NativeAssets.Linux' into project '/data2/loongson/example/example.csproj'.
info : Restoring packages for /data2/loongson/example/example.csproj...
info : GET http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/index.json
info : OK http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/index.json 48ms
info : GET http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/2.80.3/skiasharp.nativeassets.linux.2.80.3.nupkg
info : OK http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/2.80.3/skiasharp.nativeassets.linux.2.80.3.nupkg 54ms
...
info : Adding PackageReference for package 'HarfBuzzSharp.NativeAssets.Linux' into project '/data2/loongson/example/example.csproj'.
info : Restoring packages for /data2/loongson/example/example.csproj...
info : GET http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/index.json
info : OK http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/index.json 405ms
info : GET https://api.nuget.org/v3-flatcontainer/harfbuzzsharp.nativeassets.linux/index.json
info : GET http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/2.6.1/harfbuzzsharp.nativeassets.linux.2.6.1.nupkg
info : OK http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/2.6.1/harfbuzzsharp.nativeassets.linux.2.6.1.nupkg 57ms
通过上述步骤即可完成。
手动下载,并复制到SDK目录
如果需要运行从其它平台(如x64)编译好的项目,则建议到龙芯Nuget源手动下载SkiaSharp和HarfBuzzSharp nupkg包,解压后将so文件复制到SDK目录下。
# 下载nupkg包
wget http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/2.80.3/skiasharp.nativeassets.linux.2.80.3.nupkg
wget http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/2.6.1/harfbuzzsharp.nativeassets.linux.2.6.1.nupkg
# 解压
mkdir skiasharp harfbuzzsharp
unzip skiasharp.nativeassets.linux.2.80.3.nupkg -d skiasharp
unzip harfbuzzsharp.nativeassets.linux.2.6.1.nupkg -d harfbuzzsharp
# 以.NET 6.0.5默认路径为例:
# 复制libSkiaSharp.so和libHarfBuzzSharp.so到SDK目录下dotnet/shared/Microsoft.NETCore.App/6.0.5
sudo cp ./skiasharp/runtimes/linux-loongarch64/native/libSkiaSharp.so /usr/share/dotnet/shared/Microsoft.NETCore.App/6.0.5
sudo cp ./harfbuzzsharp/runtimes/linux-loongarch64/native/libHarfBuzzSharp.so /usr/share/dotnet/shared/Microsoft.NETCore.App/6.0.5
龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本的更多相关文章
- 龙芯发布.NET 6.0.100开发者试用版
龙芯在龙芯开源社区发布了LoongArch64-.NET-SDK-6.0.100开发者试用版 新闻 ,龙芯.NET基于上游社区 版本 适配支持龙芯平台架构. 目前支持LoongArch64架构和MIP ...
- 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机
龙芯3A5000 已经上市,与龙芯3A5000配套的三大编译器GCC.LLVM.GoLang和三大虚拟机Java.JavaScript..NET均已完成开发,从老伙计哪里搞来一台3A5000 机器,安 ...
- 龙芯fedora28日常生存指南
2021-01-30 v0.0.5 从0.0.1开始改了非常多,一月余时间的花费渴望为其他人提供一点帮助,能够快速上手. 这主要是这一年来我从3B1500到3A4000再到福珑2的日常使用记录,是之前 ...
- 龙芯软硬件培训个人总结-day2
今天最后一天,主要培训了BSP,QT,KVM云计算相关的内容.大致总结了一些自己关注的点.培训的资料已上传至服务器,如果需要可关注下方二维码,后台直接回复“资料”获取.关于实战的资料还未导出,等导出 ...
- 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3)
原文 各个 C# 版本的主要特性.发布日期和发布方式(C# 1.0 - 7.3) 本文收集各个 C# 版本的主要特性.发布日期和发布方式. C# 8.0 尚在预览版本 C# 7.3 2018 年 5 ...
- 如何在国产龙芯架构平台上运行c/c++、java、nodejs等编程语言
高能预警:本文内容过于硬核,涉及编译器原理.cpu指令集.机器码.编程语言原理.跨平台原理等计算机专业基础知识,建议具有c.c++.java.nodejs等多种编程语言开发能力,且实战经验丰富的资深开 ...
- [转帖]国科微发布纯正国产SSD主控 龙芯IP内核,速度可达500MB/s
国科微发布纯正国产SSD主控龙芯IP内核,速度可达500MB/s https://www.expreview.com/68071.html 自主内核 龙芯处理器. 2019.4. 在存储芯片领域,中国 ...
- [转帖]方正数码发布基于龙芯3A3000系列整机
方正数码发布基于龙芯3A3000系列整机 http://www.loongson.cn/news/company/730.html 方正数码也出过龙芯相关的服务器和PC笔记本等 发布时间:2019-0 ...
- 龙芯开源社区上线.NET主页
龙芯团队从2019年7 月份开始着手.NET Core的MIPS64支持研发,经过将近一年的研发,在2020年6月18日完成了里程碑性的工作,在github CoreCLR 仓库:https://gi ...
随机推荐
- 整合SSM框架环境搭建
知识要求 MySQL相关操作 Maven操作 Mybatis.Spring.SpringMVC三个框架基本操作 JavaWeb等知识 搭建环境 MySQL 8.0 Mybatis 3.5.2 使用c3 ...
- IDEA-2020版本 Gradle项目控制台输出乱码
点击Help->Edit custom vm options 加入下面这一行 -Dfile.encoding=utf-8 最后当然要重启idea了
- power app 解决方案中表导入问题
我们在powerapp中导出的表,解压后是会是乱码,导致在导入的时候会失败,或者导入数据不全. 使用 2 但是直接导入也会是乱码,所以需要将文件重新保存一下: 首先新建一个excel 选择要导入的那个 ...
- [UE][虚幻]创建默认媒体打包资源路径
**创建默认媒体打包资源路径** **个人笔记** **翻阅官方资料,实践出来的!** **转载,"借鉴",重写...其他行为必须标明出处!!!** UE 官方默认有一个专 ...
- Django + Taro 前后端分离项目实现企业微信登录
前言 还是最近在做的一个小项目,后端用的是Django搭配RestFramework做接口,前端第一次尝试用京东开源的Taro框架来做多端(目前需要做用于企业微信的H5端和微信小程序) 本文记录一下企 ...
- Java之JDBC详谈(数据库)
详细介绍了数据库的JDBC操作,并且整理了具体方法,有代码实现与详细注释.
- Web安全中的常见Session攻击(预测+劫持+固定)
攻击者至少可以通过以下三种方式来获取一个有效的session标识符: 1.预测 2.捕获(劫持) 3.固定 一.会话预测 预测这种方式,也就是攻击者需要猜测出系统中使用的有效的session标识符(P ...
- SpringBoot 入门及配置
1.首先创建Maven文件,右键单击鼠标,others搜索Maven,点击Maven Project 2.点击下一步,打上勾下一步,输入包名和项目名称 3.第三步修改pom.xml导入Maven依赖M ...
- ucore lab1 操作系统启动过程 学习笔记
开头赞美THU给我们提供了这么棒的资源.难是真的难,好也是真的好.这种广查资料,反复推敲,反复思考从通电后第一条代码搞起来理顺一个操作系统源码的感觉是真的爽. 1. 操作系统镜像文件ucore.img ...
- delete-drop语句生成的存储过程
问题: 开发时有时候需要对很多表进行操作. 例如:清空(删除)所有(某些)表,删除所有表某时间点之后导入的数据(类似于回滚) 解决方式: 对选定的表集合执行相同的查询条件(可为空),如果这个执行结果大 ...