# centos部署指南
在 CentOS 7 或其他较旧版本的 Linux 系统中部署应用时,可能会遇到以下错误信息。这些错误本质上都源于 系统 GLIBC 版本过低:
Caused by: java.lang.UnsatisfiedLinkError: /root/smartjavaai_cache/pytorch/2.5.1-cpu-linux-x86_64/libc10.so: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/smartjavaai_cache/pytorch/2.5.1-cpu-linux-x86_64/libc10.so)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/opencv_openpnp2647728894578271542/nu/pattern/opencv/linux/x86_64/libopencv_java481.so: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /tmp/opencv_openpnp2647728894578271542/nu/pattern/opencv/linux/x86_64/libopencv_java481.so)
解决方法(仅适用于 CPU 环境):
1、使用 DJL 提供的 Precxx11 版本,替代默认的 PyTorch 本地依赖
DJL 提供了一个兼容 GLIBC 低版本的 libstdc++.so.6.24 版本,专门用于老系统。
第一步:移除默认 PyTorch 本地依赖(如果存在)
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-native-cpu</artifactId>
<classifier>linux-x86_64</classifier>
<scope>runtime</scope>
<version>2.5.1</version>
</dependency>
第二步:添加 Precxx11 替代版本:
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-native-cpu-precxx11</artifactId>
<classifier>linux-x86_64</classifier>
<version>2.5.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-jni</artifactId>
<version>2.5.1-0.32.0</version>
<scope>runtime</scope>
</dependency>
高版本的 OpenCV 依赖 GLIBC 2.27+,在 CentOS 7 上可能不兼容。你可以在项目中排除高版本,再引入兼容版本:
第三步:排除 smartjavaai-xxx 中默认的 OpenCV 依赖
<dependency>
<groupId>cn.smartjavaai</groupId>
<artifactId>smartjavaai-face</artifactId>
<exclusions>
<exclusion>
<groupId>org.openpnp</groupId>
<artifactId>opencv</artifactId>
</exclusion>
</exclusions>
</dependency>
第四步:手动引入低版本 OpenCV
<dependency>
<groupId>org.openpnp</groupId>
<artifactId>opencv</artifactId>
<version>3.4.2-2</version>
</dependency>