我已经将多台计算机从 Ubuntu 21.10 升级到 22.04。更新后,我无法在其中一台计算机上运行 DigiKam。我尝试删除、清除并重新安装 digikam、libgdal 和 libblosc1 - 但没有成功。DigiKam 在打开任何窗口甚至启动画面之前就停止了。
$ digikam
digikam: symbol lookup error: /lib/libgdal.so.30: undefined symbol: blosc_cbuffer_validate
$
我尝试在 libgdal 中找到该符号 ( blosc_cbuffer_validate
)。该符号确实在库中未定义,但在我的其他计算机上也是如此,而 digikam 可以正常启动。
$ nm -gD /lib/libgdal.so.30 | grep blosc_cbuffer
U blosc_cbuffer_validate
$
我想知道无法再运行 DigiKam 的计算机与其他计算机有何不同,只能想到这两个区别:
- 在升级到 Ubuntu 22.04 之前安装了 DigiKam
- 它配备 AMD Ryzen CPU,而其他产品配备 Intel i7。
问题可能出在哪里?我该如何解决?如果没有解决方案,我该如何缩小问题范围?
答案1
它定义在libblosc1。
$ sudo apt install libblosc1
并验证:
$ nm -gD /usr/lib/libblosc.so.1 | grep blosc_cbuffer
0000000000004580 T blosc_cbuffer_complib
0000000000004530 T blosc_cbuffer_metainfo
0000000000004440 T blosc_cbuffer_sizes
00000000000044b0 T blosc_cbuffer_validate
0000000000004570 T blosc_cbuffer_versions
更新:请提供输出$ ldd digikam
更新:它正在加载错误的文件,/opt
可以通过以下方法修复:
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libblosc.so.1 digikam
或者通过更改LD_LIBRARY_PATH
或删除中的版本/opt
。