4

I just tried to install Google Earth on my new Xubuntu 13.10 installation. 64-bit fails anyway because of missing ia32-libs, but the 32-bit edition installs fine. It just reports an error if I try to launch it:

./googleearth-bin: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory

I already tried to re-install the package and added the libfontconfig-dev package, too, but still this error appears. Any ideas whats missing or how to fix?

Eliah Kagan
  • 117,780
d0b3rmann
  • 43
  • 1
  • 4
  • what's output of locate libfontconfig.so.1 ? – kenn Jan 13 '14 at 09:18
  • It replies: /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.7.0 – d0b3rmann Jan 13 '14 at 09:20
  • 1
    add the following line to /opt/google/earth/free/googleearth

    export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfontconfig.so.1

    just before the last line that reads LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin "$@"

    – kenn Jan 13 '14 at 09:26
  • @kenn Since the version of Google Earth currently being used is the 32-bit version, it seems unlikely that those 32-bit libraries (they're in the x86_64-linux-gnu subdirectory of lib) would enable it to work. However, if you believe this is a solution, I'd encourage you to post it as an answer. – Eliah Kagan Jan 13 '14 at 09:30
  • @EliahKagan I thought it's one of those broken library path issue, I didn't know it wouldn't work with 64 bit library. Then he must install 32bit library? – kenn Jan 13 '14 at 09:37
  • @kenn I think that will fix this. It's sort of unclear to me exactly what is meant by "64-bit version" and "32-bit version" in the context of the question here, since a truly 64-bit program shouldn't require any 32-bit libraries, and the ia32-libs package has only ever provided 32-bit libraries. (So why would the 64-bit version need that? Well, maybe some parts of it were still 32-bit...) – Eliah Kagan Jan 13 '14 at 09:39

1 Answers1

3

TL,DR: Try installing the libfontconfig1:i386 package.

Packages whose names end in -dev provide header files, which don't help a binary executable to run. There's no need to remove the libfontconfig-dev package, but it's expected that installing it wouldn't help this situation.

The ia32-libs package, available in releases prior to 13.10, provided a number of commonly used 32-bit libraries. Generally speaking, 64-bit software never requires ia32-libs, but since the "64-bit version/edition" of a program just means it's the version for a 64-bit OS and not necessarily that all its native code is 64-bit, such a dependency is possible.

The motivating reason for the ia32-libs package was to provide libraries that are frequently needed by 32-bit programs on a 64-bit system, but would once have been hard to install, since the package manager would only install packages matching the version of Ubuntu installed.

The Ubuntu adopted MultiArch, which facilitates installing both 32-bit and 64-bit packages on the same 64-bit system, using the package manager. MultiArch support started a while ago, but the ia32-libs package was retained, mainly for backward compatibility and for the convenience it provided. (Actually, it was turned into a shortcut for installing the appropriate 32-bit library packages. Users installing it for the first time on a system with MultiArch would install the more descriptively named ia32-libs-multiarch package.)

Well, finally ia32-libs and ia32-libs-multiarch are gone... but you can install install 32-bit libraries (and other packages) on your 64-bit Xubuntu 13.10 system, by specifying the package name and architecture for installation.

You have an error message that specifies a library file that is needed: libfontconfig.so.1. You appear to have only the 64-bit version of that library. (The 32-bit and 64-bit versions are stored in separate directories, in part to allow them both to be installed at the same time.)

To find out what package provides the file, search for it under "Search the contents of packages" at http://packages.ubuntu.com/. This reveals the package that provides it is libfontconfig1. You want to install the 32-bit version of that. Ubuntu's name for the 32-bit PC/Mac architecture is i386 (the 64-bit one, even for Intel processors, is amd64). So you can install this by running:

sudo apt-get update
sudo apt-get install libfontconfig1:i386

Then try running Google Earth again and see what happens.

Related: What happened to the ia32-libs package? (But note, the ia32-libs package remained a transitional package for ia32-libs-multiarch, which provided essentially equivalent functionality until 13.10 Saucy.)

Eliah Kagan
  • 117,780
  • After installing the missing package with :i386 and a half-dozen of other libs it's working like a charme! ThX a lot! – d0b3rmann Jan 13 '14 at 13:42