0

Very confused on this one. Been looking around and all the answers I have found have been insufficient. Whenever I launch Nautilus, I get the error:

nautilus: symbol lookup error: nautilus: undefined symbol: gtk_flow_box_get_child_at_pos

The same thing appears when I try and use sudo nautilus or nautilus -q, or even sudo nautilus -q. I have tried enabling icons in Gnome tweaks, updating Ubuntu, updating GTK, reinstalling nautilus, and am out of ideas.


$ 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
  • It's unclear (at least to me) how you are launching nautilus when you get these errors. Are you attempting to launch a GUI application via the command line? – Elder Geek Feb 5 '18 at 19:07
  • @ElderGeek I am launching it by just putting nautilus into terminal, as launching the application via the Ubuntu desktop GUI, it loads for a second then crashes. (i figured it was running into an error, so i am launching it via console to see the error) – Zeke Egherman Feb 5 '18 at 19:13
  • @davidfoerster done. – Zeke Egherman Feb 6 '18 at 1:20
  • Digging a bit deeper, how about ldd $(which nautilus) | grep gtk, readlink -f /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 and nm -D /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 | grep flow_box_get_child – steeldriver Feb 6 '18 at 2:51
  • @steeldriver edited. – Zeke Egherman Feb 7 '18 at 3:01
0

You have a second installation of libgtk3 in /usr/local/lib that is incompatible with Nautilus (and likely other GTK applications from the package repository). Please either remove that GTK installation altogether or remove /usr/local/lib from the default search path for shared libraries.

I recommend the former (deinstallation of the GTK library) as it appears you don't know how it got there which means it likely servers no (more) purpose:

  1. Go to the source code directory from which you originally built and installed the GTK library to /usr/local/lib. It should contain a file called Makefile or GNUmakefile.

  2. Invoke its uninstallation routine:

    sudo make uninstall
    
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.