背景

某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,银河麒麟就是一个Linux发行版,数据库使用达梦V8,这个数据库很多概念和Oracle相似,CPU平台的范围:龙芯、飞腾、鲲鹏等。

龙芯团队自己支持了.netcore3.1,飞腾之类的是ARM架构,官方已经支持。.netcore3.1仅在 x64 体系结构上支持包管理器安装,对于 ARM 等其他体系结构,必须通过其他一些方式安装 .NET。

这里就以ARM架构举例,其它CPU平台的安装过程都一样,要下载的包不同而已。

环境

  • 主机操作系统:Windows 10
  • 虚拟化工具:QEMU
  • 虚拟机CPU:cortex-a53(ARMv8架构,支持Arm64)
  • 虚拟机操作系统:银河麒麟 v4

下载

.NET Core 3.1的官方下载地址是这里 :https://dotnet.microsoft.com/en-us/download/dotnet/3.1

因为这里选择ARMv8架构的CPU,所以下载Linux的Arm64版本;如果是x64架构,就选择x64。

如果是龙芯处理器,请前往龙芯官网下载:http://www.loongnix.cn/index.php/Dotnet

怎么上传到服务器?

如果是下载到本地的,可以通过SFTP上传到服务器;如果想在服务器下载,可以通过wget命令直接下载。

安装

x64、Arm处理器

进入安装文件目录,我这里是下载到当前用户的根目录了,所以:

cd ~

执行以下命令,将安装包解压到当前用户根目录的dotnet文件夹下(可以更换路径):

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.416-linux-arm64.tar.gz -C $HOME/dotnet

注意:不同平台的安装包名字不一样,要修改成你下载的,比如x64平台下的包是 dotnet-sdk-3.1.416-linux-x64.tar.gz 。

然后还需要将dotnet导出到环境变量PATH中,编辑文件 /etc/profile ,在最后添加以下两句:

export PATH=$PATH:$HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet

然后执行命令:source /etc/profile,让配置生效。

看看dotnet是否安装成功了,执行命令:dotnet –info ,正常应该显示如下:

MIPS、龙芯处理器

因为没有龙芯处理器,这块只能干说了,因为银河麒麟是Debian系的,所以下载那个deb包,直接命令安装就行了。

sudo apt install ./dotnet-sdk-3.1.11-rc1_loongarch64.deb

安装完成之后,也通过 dotnet –info 看一下结果。

其它依赖

如果依赖System.Drawing.Common 程序集,还需要 libgdiplus 6.0.1或更高版本,这个是mono提供的,如果你的CPU平台是arm64或者x64,可以在下面的链接下载这个包,上传到服务器上进行安装:

链接: https://pan.baidu.com/s/1WYIbxqh8OPTHBJWZoWafHw?pwd=pr4q

x64平台这样安装:

sudo apt install ./libgif7_5.1.4-0.3~16.04.1_amd64.deb
sudo apt install ./libgdiplus_6.0.5-0xamarin1+ubuntu1604b1_amd64.deb

arm64平台:

sudo apt install ./libgif7_5.1.4-0.3~16.04.1_arm64.deb
sudo apt install ./libgdiplus_6.0.5-0xamarin1+ubuntu1604b1_arm64.deb

如果你是其它CPU平台的,可以参考mono项目的这篇文章:

https://www.mono-project.com/download/stable/

针对这个问题,官方在.NET6中已经放弃了System.Drawing.Common的跨平台属性,也许更好的办法是使用其它图形库代替它,比如:SkiaSharpMicrosoft.Maui.GraphicsImageSharp

测试

依次执行以下命令:创建一个目录 dotnetsample,然后创建一个web项目,最后运行这个项目。

cd ~
mkdir dotnetsample
cd ./dotnetsample
dotnet new web
dotnet run --urls=http://*:5000

在浏览器中访问,显示如下结果:

如果走到这一步,那么恭喜你,安装成功了!

收获更多架构知识,请关注微信公众号 萤火架构。原创内容,转载请注明出处。

国产化之Arm64 CPU+银河麒麟系统安装.NetCore的更多相关文章

  1. 国产化之虚拟ARM64-CPU安装银河麒麟操作系统

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器.我本地没有这个国产的处理器,但飞腾是基于ARMv8架构的64位处理器,所以理论上基于这个CPU架构的硬件应 ...

  2. 国产化之银河麒麟安装.NetCore-包管理器方式

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...

  3. 国产化之银河麒麟.netcore3.1访问https服务的两个问题

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...

  4. 国产化之银河麒麟安装达梦数据库DM8

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用DM8. 虽然在之前的文章中已经成功模拟国产飞腾处理器,但是运行效率不高,所以这里的银河麒麟操作系统还是运行在x64平台上 ...

  5. 开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!

    GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端. 这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产OS.国产CPU.国产数据 ...

  6. .NET 6应用程序适配国产银河麒麟V10系统随记

    最近想在麒麟系统上运行.NET 6程序,经过一番折腾最终完成了,简单记录一下. 目标系统: CPU: aarch64架构(ARM64) 操作系统:银河麒麟V10高级服务器系统 银河麒麟V10系统(以下 ...

  7. [转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP

    银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 ...

  8. 银河麒麟V10安装ASP.NET Core并配置Supervisor让网站开机自动运行

    银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化.云计算.大数据.工业互联网时代对主机系统可靠性.安全性.性能.扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全.云原生支 ...

  9. 银河麒麟操作系统U盘手动挂载,出现乱码

    使用银河麒麟操作系统,U盘手动挂载,U盘中中文字符显示为乱码??      对于银河麒麟操作系统的这一问题,可能是因为字符集的原因,需要在mount后加参数: sudo mount –o iochar ...

随机推荐

  1. django之集成第三方支付平台PaysAPI与百度云视频点播服务接入

    PaysAPI直接查看接口文档:https://www.paysapi.com/docindex,比较简单 百度云视频点播服务接入: 1. 准备工作:百度云的示例:http://cyberplayer ...

  2. Spring Cloud Alibaba Nacos 服务注册与发现功能实现!

    Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能. 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连 ...

  3. IDE集成git

    目录 简介 Git安装 IDE集成Git IDE集成Git代码的创建分享上传 代码的下载和普通上传 分子的创建以及合并 代码的回滚 查看历史版本 简介 Git 是一个开源的分布式版本控制软件,用以有效 ...

  4. SpringBeanUtils的部分方法类

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/12060553.html SpringBeanUtils的部分方法类: import java. ...

  5. An incompatible version 1.1.1 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.17

    [问题现象]: 启动Tomcat时报如下类似错误信息: An incompatible version 1.1.12 of the APR based Apache Tomcat Native lib ...

  6. python数据分析入门笔记[1]

    1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 ( ...

  7. v80.01 鸿蒙内核源码分析(内核态锁篇) | 如何实现快锁Futex(下) | 百篇博客分析OpenHarmony源码

    百篇博客分析|本篇为:(内核态锁篇) | 如何实现快锁Futex(下) 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析(互斥锁) ...

  8. JavaScript函数式编程(纯函数、柯里化以及组合函数)

    JavaScript函数式编程(纯函数.柯里化以及组合函数) 前言 函数式编程(Functional Programming),又称为泛函编程,是一种编程范式.早在很久以前就提出了函数式编程这个概念了 ...

  9. Oracle数据库-常规中行显示0,解决方案

    如图,如果当前位置显示为0  原因:Oracle不是实时的对表进行分析的,需要手动执行分析. 解决方案: 分析表 analyze table tablename compute statistics;

  10. 【一天一个小知识10/20】Unity通过www获取json文本信息。

    前提:领导要我在unity获取局域网服务器的文本信息.给了一个json的网络文本让我测试.我对于json以及服务器比较陌生.就直接去网上找相关的资料. 以下是自己测试的代码,没问题. 测试的网络jso ...