libgdal26 は Ubuntu 22.04 では壊れているようです

libgdal26 は Ubuntu 22.04 では壊れているようです

システムをUbuntu 22.04にアップグレードしましたが、libgdal26パッケージの使用に問題が見つかりました

このlibgdal26パッケージは、Django v.2.2 アプリケーションを動作させるために使用されます。Ubuntu 20.04 で正常に動作します。

アップグレード後、次の問題が見つかりました。

  • libgdal26依存しておりlibproj15libgeotiff5
  • libgeotiff5依存するlibproj22

その結果、libgdal26アプリケーションをロードすると、ライブラリlibproj15libproj22ライブラリの両方がロードされ、コアダンプや予期しない例外などが発生します。

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)

たとえば、これはコアがダンプされた後の (python 実行可能) バックトレースの一部です。

#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

ベースポイントを見つけました。libgdal26パッケージはUbuntu 22.04には存在せず、そのためまったく使用できません。その結果、システム上ではGISサブシステムでDjango 2.2を問題なく使用することはできません。

注意: Django 2.2 の GIS サブシステムはlibgdalライブラリの最新の変更を認識しないため、座標が入れ替わります。

関連情報