背景
某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64、龙芯、飞腾、鲲鹏等。
考虑到这些基础产品对.NETCore的支持,最终选择了3.1版本。主要原因就是龙芯搞了自研CPU架构,用户量不够大,.NET官方并没有专门针对龙芯的支持,而龙芯团队只对.netcore3.1做了适配(目前.net6适配测试中),至于其它的国产CPU则是基于Arm64和x64的,.NET官方都有支持。
因为只有x64支持通过包管理器安装,其它CPU架构下需要手工安装,所以这篇文章介绍的包管理器安装仅适用于x64平台,手工安装请看另一篇文章:国产化之银河麒麟安装.netcore3.1-手动安装 。
环境
- 虚拟化平台:Hyper-V 10.0
- 操作系统:银河麒麟 v4
- CPU平台:x86-64
安装步骤
银河麒麟 v4是基于 Ubuntu16.04 的,所以安装步骤可以参考微软官方的文档。
docs.microsoft.com/zh-cn/dotne…
1、更新软件列表
首先添加软件包源的国内镜像地址:
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
原始文件中有一行:deb file:///media/kylin/Kylin-4.0.2 juniper main
这个是光盘源的地址,如果没有就屏蔽掉它,前边加上 #
然后执行:sudo apt-get update
获取软件包的最新列表。
2、添加Microsoft包签名密钥到受信任包签名密钥列表
依次执行以下命令:
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
3、安装.netcore 3.1 sdk
执行下边的命令,静待执行完毕。
sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-6.0
4、检查安装结果
执行命令:dotnet --info
显示如下信息:
.NET Core SDK (reflecting any global.json): Version: 3.1.416 Commit: 8d3765c609 Runtime Environment: OS Name: kylin OS Version: 4.0.2 OS Platform: Linux RID: linux-x64 Base Path: /usr/share/dotnet/sdk/3.1.416/
测试
依次执行以下命令:创建一个目录 dotnetsample,然后创建一个web项目,最后运行这个项目。
cd ~ mkdir dotnetsample cd ./dotnetsample dotnet new web dotnet run --urls=http://*:5000