.NET CORE .NET 5 6在华为arm 鲲鹏服务器运行

[删除(380066935@qq.com或微信通知)]

最近打算升级服务器 就想试试鲲鹏服务器到底靠不靠谱

废话不多说

先安装arm专用的mysql,根据以往的经验 实测mysql8.0拉胯,还是用5.7最快

https://mirrors.huaweicloud.com/home

 

 

安装arm版本 mysql

到华为专用的arm下载

http://arm.cloud-onlinelab.cn/

 

下载地址为:https://obs-mirror-ftp4.obs.cn-north-4.myhuaweicloud.com/database/mysql-5.7.30.tar.gz

1.下载压缩包 wget https://obs-mirror-ftp4.obs.cn-north-4.myhuaweicloud.com/database/mysql-5.7.30.tar.gz

2.安装依赖包 yum install -y perl openssl openssl-devel libaio perl-JSON autoconf

3.解压并安装 tar -xvf mysql-5.7.30.tar.gz cd aarch64 yum remove -y mariadb-libs yum install *.rpm

4.启动MySQL,查看状态 systemctl start mysqld systemctl status mysqld

5.登录数据库 密码生成在/var/log/mysqld.log中,通过/password查找 mysql -uroot -p进入 6.修改密码 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; mysql> use mysql; mysql> update user set host = '%' where user = 'root'; mysql> FLUSH PRIVILEGES;

 

其他开启远程登录的操作就和之前的一样

安装dotnet

https://bbs.huaweicloud.com/forum/thread-46787-1-1.html

【鲲鹏翱翔】鲲鹏服务器dotnet移植指南

 

1.   简介

.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

这里因为他的icu59.1链接已经失效,需要到github自己手动下载解压
https://github.com/unicode-org/icu/releases/tag/release-59-1

 

编译并配置环境变量

./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

image.png

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

image.png

5     FAQ

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

image.png

 

 

 

其他一些问题可以参考

https://www.cnblogs.com/kugar/p/12630181.html

 

解决华为云鲲鹏服务器arm架构运行IoTDB经常自动挂掉

原因: 华为云鲲鹏服务器arm架构运行IoTDB缺少一些lib库

IoTDB有些底层依赖包,机器上的版本太低了,cp一个高版本的就行了

注意: arm架构使用arm64的包,不要用amd64包


#查找依赖包
sudo find / -name "libstdc++.so.6*"

#复制依赖包
sudo cp somewhere/libstdc++.so.6.0.25 /usr/lib64/

如果libstdc++.so.6.0.25包不存在
----centos7.6没有, 系统升级成centos8就有了

解决libstdc++.so.6: version `GLIBCXX_3.4.21' not found

解决办法参考:
https://www.cnblogs.com/sddai/p/10318086.html

下载对应版本:
https://ubuntu.pkgs.org/18.04/ubuntu-main-amd64/libstdc++6_5.3.1-14ubuntu2_amd64.deb.html


#下载下来之后,用如下命令开始解压
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