当前位置: 首页 > news >正文

openEuler24.03 安装nacos2.2.3

一、部署
编译安装nacos失败提示缺少龙芯架构安装包
docker启动nacos失败,龙芯官方镜像仓库中镜像在openEuler中都无法启动
采用从docker容器中拷贝nacos 然后在宿主机启动,nacos版本为2.2.3

安装docker

yum -y install docker

使用cat启动nacos

docker run -itd --name=test --entrypoint="cat" cr.loongnix.cn/nacos/nacos-server:2.2.3

拷贝nacos

[root@cn-loongarch64-195-11 rocksdb-7.8.3]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8faf078954b0 cr.loongnix.cn/nacos/nacos-server:2.2.3 "cat" 2 seconds ago Up 1 second 8848/tcp test
[root@cn-loongarch64-195-11 rocksdb-7.8.3]# docker inspect test|grep Merge
"MergedDir": "/var/lib/docker/overlay2/8f0959fff851a7f74af9157fa8cf072c7a1b6ae367fc3223a43f665e42e04771/merged",

[root@cn-loongarch64-195-11 rocksdb-7.8.3]# cp /var/lib/docker/overlay2/8f0959fff851a7f74af9157fa8cf072c7a1b6ae367fc3223a43f665e42e04771/merged/home/nacos /data/servers/
启动nacos 报错如下 提示无法找到librocksdbjni2790874277509933911.so
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'clientOperationServiceProxy' defined in URL [jar:file:/data/servers/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-2.2.3.jar!/com/alibaba/nacos/naming/core/v2/service/ClientOperationServiceProxy.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'persistentClientOperationServiceImpl' defined in URL [jar:file:/data/servers/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-2.2.3.jar!/com/alibaba/nacos/naming/core/v2/service/impl/PersistentClientOperationServiceImpl.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.naming.core.v2.service.impl.PersistentClientOperationServiceImpl]: Constructor threw exception; nested exception is java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni2790874277509933911.so: /tmp/librocksdbjni2790874277509933911.so: failed to map segment from shared object
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 27 common frames omitted

编译安装rocksdb
选择和nacos版本发布时间对应的rocksdb
https://github.com/facebook/rocksdb/releases/tag/v7.8.3
tar -xf rocksdb-7.8.3.tar

cd /data/servers/rocksdb-7.8.3
修改CMakeLists.txt 参考文档:https://blog.csdn.net/peihexian/article/details/125631949

数字为行号

第一处配置

在下面这个配置下新增两行

原配置

47 if(POLICY CMP0042)
48 cmake_policy(SET CMP0042 NEW)
49 endif()

新配置

if(POLICY CMP0042)
cmake_policy(SET CMP0042 NEW)
endif()
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_BUILD_TYPE,"Release")

第二处配置

这里的
69 option(WITH_SNAPPY "build with SNAPPY" OFF)
70 option(WITH_LZ4 "build with lz4" OFF)
71 option(WITH_ZLIB "build with zlib" OFF)
72 option(WITH_ZSTD "build with zstd" OFF)
全部改为ON
option(WITH_SNAPPY "build with SNAPPY" ON)
option(WITH_LZ4 "build with lz4" ON)
option(WITH_ZLIB "build with zlib" ON)
option(WITH_ZSTD "build with zstd" ON)

第三处配置

280 else()
281 if(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390x" AND NOT HAS_S390X_MARCH_NATIVE)
282 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=z196")
283 elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT HAS_ARMV8_CRC)
284 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
285 endif()
286 endif()
287 endif()

修改了native 并新增了一行
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=loongarch64 -Os -Wall -s")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -Wall -s")
修改为
else()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390x" AND NOT HAS_S390X_MARCH_NATIVE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=z196")
elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT HAS_ARMV8_CRC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=loongarch64 -Os -Wall -s")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -Wall -s")
endif()
endif()
endif()

第四处配置文件为vim /data/servers/rocksdb-7.8.3/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h原配置#elif defined(__riscv) && __riscv_xlen == 32

uint32_t cycles_lo, cycles_hi0, cycles_hi1;
// Implemented in assembly because Clang insisted on branching.
asm volatile(
"rdcycleh %0\n"
"rdcycle %1\n"
"rdcycleh %2\n"
"sub %0, %0, %2\n"
"seqz %0, %0\n"
"sub %0, zero, %0\n"
"and %1, %1, %0\n"
: "=r"(cycles_hi0), "=r"(cycles_lo), "=r"(cycles_hi1));
return (static_cast<uint64_t>(cycles_hi1) << 32) | cycles_lo;

elif defined(__riscv) && __riscv_xlen == 64

uint64_t cycles;
asm volatile("rdcycle %0" : "=r"(cycles));
return cycles;

else

error No timer implementation for this platform

endif

}

新增配置#elif defined(loongarch)
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
完整如下

elif defined(__riscv) && __riscv_xlen == 32

uint32_t cycles_lo, cycles_hi0, cycles_hi1;
// Implemented in assembly because Clang insisted on branching.
asm volatile(
"rdcycleh %0\n"
"rdcycle %1\n"
"rdcycleh %2\n"
"sub %0, %0, %2\n"
"seqz %0, %0\n"
"sub %0, zero, %0\n"
"and %1, %1, %0\n"
: "=r"(cycles_hi0), "=r"(cycles_lo), "=r"(cycles_hi1));
return (static_cast<uint64_t>(cycles_hi1) << 32) | cycles_lo;

elif defined(__riscv) && __riscv_xlen == 64

uint64_t cycles;
asm volatile("rdcycle %0" : "=r"(cycles));
return cycles;

elif defined(loongarch)

struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;

else

error No timer implementation for this platform

endif

}
下载对应依赖 开始安装
yum -y install snappy-devel zstd-devel gflags-devel lz4-devel

编译安装rocksdb

cd /data/servers/rocksdb-7.8.3
mkdir build && cd build
cmake ..
make -j$(nproc)
make install

编译安装jni

cd /data/servers/rocksdb-7.8.3
PORTABLE=1 DEBUG_LEVEL=0 make -j8 rocksdbjava DISABLE_WARNING_AS_ERROR=1
安装完成之后
mkdir /data/servers/nacos/lib
cp /data/servers/rocksdb-7.8.3/java/target/librocksdbjni-linux64.so /data/servers/nacos/lib/librocksdbjni-linux64.so

启动服务

修改naocs启动脚本

/data/servers/nacos/bin/startup.sh

添加

!/bin/bash

export LD_LIBRARY_PATH=/data/servers/nacos/lib

启动nacos

cd /data/servers/nacos/nacos
[root@cn-loongarch64-195-11 bin]# cd bin/
[root@cn-loongarch64-195-11 bin]# ls
shutdown.cmd shutdown.sh startup.cmd startup.sh
[root@cn-loongarch64-195-11 bin]# ./startup.sh -m standalone
二、测试
浏览器访问ip+8848端口。

http://www.sczhlp.com/news/21781/

相关文章:

  • uv,下一代Python包管理工具
  • 响应式网页设计名词解释长春seo关键词排名
  • 郑州 高端网站建设开封网络推广哪家好
  • 做会计要看什么关注什么网站品牌策略包括哪些内容
  • 如何完善自己的网站彩虹云商城网站搭建
  • 龙岗公司的网站制作站长工具的使用seo综合查询排名
  • 如何优化营销型企业网站怎样创建网页
  • 个人网站设计论文一万字seo网站关键字优化
  • 做网站好还是做程序员好百度人工智能
  • 中国网重庆抖音seo优化怎么做
  • 平面设计找图网站电商平台排行榜
  • Axure RP 11 安装教程全网最新超详细图文教程包含下载、安装、汉化、授权(附安装包)【2025年】
  • 点分治学习笔记
  • DeepSeek 模型本地部署安装教程(超级详细,附安装包) 2025最新版详细图文安装教程(超详细保姆级小白教程)
  • 银河麒麟V10 下源码编译安装 Redis 并注册为系统服务
  • 网站开发制作企业查询软件
  • app开发网站建设及开发营销方案ppt
  • wordpress菜单栏优化百度seo官网
  • 长沙建设网站的公司跨境网站建站
  • css 网站根目录宁波seo推广定制
  • 哪个网站做室内效果图厉害网站多少钱
  • 万户网络web工作流广州seo公司如何
  • 网站首页怎么做psseo网站优化培训
  • 做网站用的编程语言百度售后服务电话
  • 济南做设计公司网站广东今日最新疫情通报
  • Python 3.11安装教程(超级详细,附安装包) 2025最新版详细图文安装教程
  • 从零打造一个在线客服插件:我的踩坑与思考
  • 8.20模考总结
  • 实战GPU编程(python高性能计算)2:环境验证
  • 做网站开发钱百度网络营销app