Nautilus 无法启动(符号查找错误)

Nautilus 无法启动(符号查找错误)

对此我非常困惑。四处寻找,但找到的所有答案都不够。每当我启动 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 库),因为看起来你不知道它是如何到达那里的,这意味着它可能没有(更多)用途:

  1. 进入你最初构建并安装 GTK 库的源代码目录。它应该包含一个名为或 的/usr/local/lib文件。MakefileGNUmakefile

  2. 调用其卸载例程:

    sudo make uninstall
    

相关内容