我需要从 Nice DCV 运行 dcvviewer (https://www.nice-dcv.com)在 Fedora 31 上,但我在这里收到此错误消息:
/usr/libexec/dcvviewer/dcvviewer: symbol lookup error: /lib64/libgtk-3.so.0: undefined symbol: g_mount_operation_set_is_tcrypt_hidden_volume
我可以检查它g_mount_operation_set_is_tcrypt_hidden_volume
在以下位置不可用/lib64/libgtk-3.so.0
:
# nm -D /lib64/libgtk-3.so.0 | grep g_mount_operation_set_is_tcrypt_hidden_volume
U g_mount_operation_set_is_tcrypt_hidden_volume
但它可用于/lib64/libgio-2.0.so
:
# nm -D /lib64/libgio-2.0.so | grep g_mount_operation_set_is_tcrypt_hidden_volume
000000000008af60 T g_mount_operation_set_is_tcrypt_hidden_volume
这两个库都链接在 dcvviewer 二进制文件中:
# ldd /usr/libexec/dcvviewer/dcvviewer
[...]
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f63411db000)
[...]
libgtk-3.so.0 => /lib64/libgtk-3.so.0 (0x00007f633f18b000)
[...]
它曾经在 Fedora 30 上运行。
有办法让它发挥作用吗?
答案1
这是因为提供的glib版本dcvviewer
是2.56。新版本的 GTK 3 需要更新版本的 glib,这就是您看到此失败的原因。为了解决这个问题,您可以:
- 从该目录中删除
/usr/lib64/dcviewer/libglib*
,libgio
,libgthread
,libgmodule
, 。libgobject
这样dcvviewer
将使用较新的系统副本,而不是使用 提供的副本dcvviewer
。 - 等待下一个版本
dcvviewer
解决这个问题。