시스템을 Ubuntu 22.04로 업그레이드했는데 libgdal26
패키지 사용에 문제가 발견되었습니다.
이 libgdal26
패키지는 Django v.2.2 애플리케이션이 작동하는 데 사용됩니다. 우분투 20.04에서는 잘 작동합니다.
업그레이드 후 다음과 같은 문제를 발견했습니다.
libgdal26
libproj15
에 따라 달라집니다libgeotiff5
libgeotiff5
에 달려있다libproj22
결과적으로 libgdal26
애플리케이션을 로드하면 libproj15
및 libproj22
/또는 라이브러리가 모두 로드되어 코어 덤프 또는 예상치 못한 예외 등이 발생합니다.
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)
예를 들어, 다음은 코어가 덤프된 후의 (파이썬 실행 파일) 역추적의 일부입니다.
#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
와 함께 로드된 유일한 복제 라이브러리가 아닙니다 libgdal
. 그들은 또한:
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007ff5d8000000)
libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007ff5d6000000)
libdap.so.25 => /lib/x86_64-linux-gnu/libdap.so.25 (0x00007ff5d9662000)
libdap.so.27 => /lib/x86_64-linux-gnu/libdap.so.27 (0x00007ff5d647a000)
libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007ff5daf96000)
libwebp.so.7 => /lib/x86_64-linux-gnu/libwebp.so.7 (0x00007ff5d7a39000)
답변1
기준점을 찾았습니다. Ubuntu 22.04에는 이 libgdal26
패키지가 없기 때문에 전혀 사용할 수 없습니다. 결과적으로 GIS 하위 시스템과 함께 Django 2.2를 문제 없이 사용할 수 없습니다.
참고: Django 2.2의 GIS 하위 시스템은 libgdal
라이브러리의 마지막 변경 사항을 알지 못하며 이로 인해 좌표를 바꿉니다.