Oracle Linux 9.x运行SAP Commerce 6.x遇libuuid相关链接错误求助
问题原因与解决方法:Oracle Linux 9.x运行SAP Commerce 6.x时的libuuid依赖错误
错误信息
INFO [localhost-startStop-9] [DefaultRMIRegistryService] Creating Registry on port 2198. INFO [localhost-startStop-9] [LocalRMISocketFactory] Creating server socket at '/127.0.0.1:2198'. java.lang.UnsatisfiedLinkError: /home/xxx/git/yyy/riello-pim/bin/ext-integration/sap/core/sapcorejco/lib/linuxintel/libsapjco3.so: libuuid.so.1: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1820) ...
问题原因
- Oracle Linux 9.x中,libuuid库的默认安装路径与旧版本(如Oracle Linux 7/8)存在差异,SAP JCo的
libsapjco3.so编译时依赖的旧路径已不存在,导致动态链接器无法找到该库。 - 若SAP Commerce 6.x使用的是32位版本的SAP JCo库,而系统仅安装了64位的libuuid包,也会出现架构匹配错误。
解决方法
1. 定位libuuid.so.1的实际路径
执行以下命令查找库文件位置:
find / -name libuuid.so.1
通常会返回/usr/lib64/libuuid.so.1(64位)或/usr/lib/libuuid.so.1(32位)。
2. 让SAP JCo能找到libuuid库
方法一:创建软链接到SAP JCo库目录
将找到的libuuid.so.1链接到libsapjco3.so所在的目录:
ln -s /usr/lib64/libuuid.so.1 /home/xxx/git/yyy/riello-pim/bin/ext-integration/sap/core/sapcorejco/lib/linuxintel/libuuid.so.1
注意替换命令中的实际路径。
方法二:添加路径到动态链接库搜索环境变量
临时生效(当前会话):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
永久生效(当前用户):
编辑~/.bashrc或~/.bash_profile文件,添加上述export命令,然后执行:
source ~/.bashrc
3. 处理32位/64位架构不匹配问题
如果libsapjco3.so是32位库(可通过file命令验证:file /path/to/libsapjco3.so),则需安装32位版本的libuuid包:
dnf install util-linux-libs.i686
内容的提问来源于stack exchange,提问作者Ciccio Cappuccio
相关产品推荐
相关产品推荐

