Ubuntu 22.04系统中libgdal26包依赖冲突导致程序崩溃问题求助
Ubuntu 22.04系统中libgdal26包依赖冲突导致程序崩溃问题求助
大家好,我刚把系统升级到Ubuntu 22.04,结果发现我的Django 2.2应用没法正常运行了,问题根源出在libgdal26这个包上——在Ubuntu 20.04的时候它一直工作得好好的。
升级之后我排查出了依赖冲突的问题:
libgdal26依赖libproj15和libgeotiff5- 但
libgeotiff5又依赖libproj22
这就导致加载libgdal26时,应用同时把libproj15和libproj22两个版本的库都加载进来了,直接引发了程序崩溃或者各种莫名其妙的异常。
我用ldd命令查看了libgdal.so.26的依赖,结果如下:
seva@SEVA-MOBILE:~/swat/sharing$ ldd /usr/lib/libgdal.so.26 | grep libproj libproj.so.15 => /lib/x86_64-linux-gnu/libproj.so.15 (0x00007f5941800000) libproj.so.22 => /lib/x86_64-linux-gnu/libproj.so.22 (0x00007f593dc00000)
下面是程序崩溃后,我用gdb拿到的部分回溯信息:
#9 0x00007f5caa4a7cb3 in osgeo::proj::common::UnitOfMeasure::~UnitOfMeasure() () from /lib/x86_64-linux-gnu/libproj.so.22 #10 0x00007f5cb2a45495 in __run_exit_handlers (status=0, listp=0x7f5cb2c19838 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at ./stdlib/exit.c:113 #11 0x00007f5cb2a45610 in __GI_exit (status=<optimized out>) at ./stdlib/exit.c:143 #12 0x00007f5cb2a29d97 in __libc_start_call_main (main=main@entry=0x5feeb0, argc=argc@entry=3, argv=argv@entry=0x7fffc691e1f8) at ../sysdeps/nptl/libc_start_call_main.h:74 #13 0x00007f5cb2a29e40 in __libc_start_main_impl (main=0x5feeb0, argc=3, argv=0x7fffc691e1f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffc691e1e8) at ../csu/libc-start.c:392 #14 0x00000000005fede5 in _start () (gdb)
而且不止libproj,还有其他几个库也出现了重复加载的情况:
libcrypto.so.1.1和libcrypto.so.3libdap.so.25和libdap.so.27libwebp.so.6和libwebp.so.7
有没有朋友遇到过类似的问题?求指点怎么解决这个依赖冲突,让我的Django应用能在Ubuntu 22.04上正常跑起来!
备注:内容来源于stack exchange,提问作者nnseva
相关产品推荐
相关产品推荐

