对此我非常困惑。四处寻找,但找到的所有答案都不够。每当我启动 Nautilus 时,都会出现错误:
nautilus: symbol lookup error: nautilus: undefined symbol: gtk_flow_box_get_child_at_pos
sudo nautilus
当我尝试使用或nautilus -q
,甚至时,也会出现同样的事情sudo nautilus -q
。我尝试在 Gnome 调整中启用图标、更新 Ubuntu、更新 GTK、重新安装 nautilus,但没有主意。
$ uname -a
Linux ThinkPad-T430 4.13.0-32-generic #35-Ubuntu SMP Thu Jan 25 09:13:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ apt-cache policy nautilus libgtk-3-0
nautilus:
Installed: 1:3.26.0-0ubuntu1
Candidate: 1:3.26.0-0ubuntu1
Version table:
*** 1:3.26.0-0ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu artful/main amd64 Packages
100 /var/lib/dpkg/status
libgtk-3-0:
Installed: 3.22.25-0ubuntu0.1
Candidate: 3.22.25-0ubuntu0.1
Version table:
*** 3.22.25-0ubuntu0.1 500
500 http://us.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages
100 /var/lib/dpkg/status
3.22.24-0ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu artful/main amd64 Packages
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.10
Release: 17.10
Codename: artful
$ ldd $(which nautilus) | grep gtk
libgtk-3.so.0 => /usr/local/lib/libgtk-3.so.0 (0x00007f2f858a3000)
$ readlink -f /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2200.25
$ nm -D /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 | grep flow_box_get_child
00000000001de3a0 T gtk_flow_box_get_child_at_index
00000000001de510 T gtk_flow_box_get_child_at_pos
$ echo "$LD_LIBRARY_PATH"
$ cat /etc/ld.so.conf{,.d/*.conf}
include /etc/ld.so.conf.d/*.conf
/usr/lib/x86_64-linux-gnu/libfakeroot
# Multiarch support
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu
/usr/lib/i386-linux-gnu/mesa
# libc default configuration
/usr/local/lib
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/mesa-egl
/usr/lib/x86_64-linux-gnu/mesa
$ type -a nautilus; which -a nautilus | xargs -rd '\n' -- readlink -f --
nautilus is /usr/bin/nautilus
/usr/bin/nautilus
答案1
您安装了第二个 libgtk3,/usr/local/lib
它与 Nautilus 不兼容(可能与软件包存储库中的其他 GTK 应用程序也不兼容)。请将该 GTK 安装全部删除,或将其/usr/local/lib
从共享库的默认搜索路径中删除。
我推荐前者(卸载 GTK 库),因为看起来你不知道它是如何到达那里的,这意味着它可能没有(更多)用途:
进入你最初构建并安装 GTK 库的源代码目录。它应该包含一个名为或 的
/usr/local/lib
文件。Makefile
GNUmakefile
调用其卸载例程:
sudo make uninstall