.NET CORE .NET 5 6在华为arm 鲲鹏服务器运行
最近打算升级服务器 就想试试鲲鹏服务器到底靠不靠谱
废话不多说
先安装arm专用的mysql,根据以往的经验 实测mysql8.0拉胯,还是用5.7最快
https://mirrors.huaweicloud.com/home
安装arm版本 mysql
到华为专用的arm下载
http://arm.cloud-onlinelab.cn/
下载地址为:.NET Core是开放源代码通用开发平台,由 Microsoft 和 .NET 社区在GitHub上共同维护。它跨平台(支持 Windows、macOS 和 Linux),并且可用于生成设备、云和 IoT 应用程序。
2. 部署环境
|
Packet Name |
Version |
Detail |
|
Ubuntu |
Ubuntu 18.04 64bit with ARM |
arm通用计算增强型 2vCPUs | 4GB | kc1.large.2 |
|
CentOS |
CentOS 7.5 |
arm通用计算增强型 2vCPUs | 4GB | kc1.large.2 |
|
Dotnet SDK |
2.1 |
Dotnet SDK 2.1.607 for arm64 |
|
Dotnet SDK |
2.2 |
Dotnet SDK 2.2.207 for arm64 |
|
Dotnet SDK |
3.0 |
Dotnet SDK 3.0.101 for arm64 |
3. 安装部署
3.1替换/usr/lib64目录下的libstdc++.so.6
|
wget https://obs-mirror-ftp4.obs.cn-north-4.myhuaweicloud.com/systemreliable/libstdc%2B%2B.so.6.0.27 mv libstdc++.so.6 libstdc++.so.6.bak mv libstdc++.so.6.0.27 /usr/lib64/ ln libstdc++.so.6.0.27 libstdc++.so.6 |
3.2 安装配置ICU
下载并解压
|
wget http://download.icu-project.org/files/icu4c/59.1/icu4c-59_1-src.tgz tar -xzvf icu4c-59_1-src.tgz cd icu/source |
编译并配置环境变量
|
./configure --prefix=/usr/local/icu make -j4 make install #配置环境变量 vim /etc/profile |
修改/etc/profile文件
|
export PATH=$PATH:/usr/local/icu/bin #wq退出保存 |
使环境变量生效
|
source /etc/profile |
配置链接库
|
ln -s /usr/local/icu/lib/libicutu.so.59 /lib64/ ln -s /usr/local/icu/lib/libicui18n.so.59 /lib64/ ln -s /usr/local/icu/lib/libicuuc.so.59 /lib64/ ln -s /usr/local/icu/lib/libicudata.so.59 /lib64/ icuinfo |

3.3 配置dotnet
进入dotnet官网下载对应安装包。
https://dotnet.microsoft.com/download/dotnet-core
Dotnet SDK 2.1.607 for arm64
|
wget https://download.visualstudio.microsoft.com/download/pr/7522a153-84f6-447e-afe8-ffe2f5724478/a9370fb612f1501241b199a5e479200b/dotnet-sdk-2.1.607-linux-arm64.tar.gz |
Dotnet SDK 2.2.207 for arm64
|
wget https://download.visualstudio.microsoft.com/download/pr/18738093-b024-4353-96c2-4e1d2285a5e4/5e86e**a79e71486aa2b18af0214ae9/dotnet-sdk-2.2.207-linux-arm64.tar.gz |
Dotnet SDK 3.0.101 for arm64
|
wget https://download.visualstudio.microsoft.com/download/pr/89fb60b1-3359-414e-94cf-359f57f37c7c/256e6dac8f44f9bad01f23f9a27b01ee/dotnet-sdk-3.0.101-linux-arm64.tar.gz |
解压
|
mkdir -p /usr/share/dotnet && tar zxf dotnet-sdk-3.0.101-linux-arm64.tar.gz -C /usr/share/dotnet |
创建软链接
|
ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet |
4 示例测试
查看版本号
|
dotnet --version dotnet --info |
运行hello world
|
dotnet new console -o mydemo cd mydemo dotnet run |

5 FAQ
1.运行dotnet –version时报错。可能是ICU未安装配置好。请参考3.2节

其他一些问题可以参考
https://www.cnblogs.com/kugar/p/12630181.html
解决华为云鲲鹏服务器arm架构运行IoTDB经常自动挂掉
原因: 华为云鲲鹏服务器arm架构运行IoTDB缺少一些lib库
IoTDB有些底层依赖包,机器上的版本太低了,cp一个高版本的就行了
注意: arm架构使用arm64的包,不要用amd64包
#下载下来之后,用如下命令开始解压
ar -x libstdc++6_7-20170302-1_i386.deb
tar xvf data.tar.xz
ls usr/lib/aarch64-linux-gnu/
#将上面的最新动态库(lib/i386-linux-gnu)libstdc++.so.6.0.23复制到/usr/lib64目录下,
cp libstdc++.so.6.0.23 /usr/lib64
cp usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.21 /usr/lib64
#切换工作目录至/usr/lib64:
cd /usr/lib64
#删除原来软连接:
rm -rf libstdc++.so.6
#将默认库的软连接指向最新动态库:
ln -s libstdc++.so.6.0.23 libstdc++.so.6
#认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
华为云鲲鹏服务器arm架构安装openjdk, 使用oracle的jdk会报错
参考:
https://www.huaweicloud.com/kunpeng/software/openjdk.html
yum install java-1.8.0-openjdk
https://www.cnblogs.com/kugar/p/12630181.html