gdm not starting symbol error /usr/lib64/libgmodule-2.0.so.0

Hello forum.

another newbie with a problem…

System: SLES 11 SP3 x64 running as virtual machine.

After updating the system using zypper - gdm does not start anymore.

If I try to start gdm manually I see this:
[FONT=Courier New]gdm: symbol lookup error: /usr/lib64/libgmodule-2.0.so.0: undefined symbol: g_private_replace[/FONT]
(I have found a few threads in other forums about this, there were discussions, but no solutions unfortunately)

So I checked the mentioned module files and I see this:

[FONT=Courier New]dir libgmodule-2.0.so.*
lrwxrwxrwx 1 root root 26 Jun 28 14:05 libgmodule-2.0.so.0 → libgmodule-2.0.so.0.3800.1
-rwxrwxrwx 1 root root 14640 Oct 18 2013 libgmodule-2.0.so.0.3800.1[/FONT]
So. Linkfile exists and the file that the symbol link referes to as well.

So I tried to gather information about this part of the message: “g_private_replace” and found some info on the web about development of modules…

Well - I am a bit stuck here. Could anyone give me a clue where to go from here?
Any help appreciated.

Hi datanetservicesug,

I’m no Gnome guy, but I’ll try anyhow:

gdm: symbol lookup error: /usr/lib64/libgmodule-2.0.so.0: undefined symbol: g_private_replace
[…]
So. Linkfile exists and the file that the symbol link referes to as well.

The error message implies that libgmodule-2.0.so.0 says it relies on some other library to provide g_private_replace, but none does that.

Any error messages (missing libs) to be noticed when running “ldd /usr/lib64/libgmodule-2.0.so.0”?

A shot into the blue: does running “ldconfig” all by itself (to refresh the loader cache) help in any way? I’ve had situations where somehow the loader cache got garbled and libs wouldn’t load anymore right after an update… refreshing the cache helped.

Regards,
Jens

Wow - that was quick - thanks a lot!

ldd libgmodule-2.0.so.0 creates this output - no errors as far as I can say. Or can you see anything?

    linux-vdso.so.1 =>  (0x00007fff0e7ff000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f8e3c6e9000)
    libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f8e3c423000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8e3c205000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f8e3be8c000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8e3cb22000)
    libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00007f8e3bc5c000)

ldconfig does not create an output at all
(is that good or bad?)

still searching the web and cam eacross the idea to see whate provides this module using the command:

zypper what-provides libgmodule-2.0.so.0

Refreshing service ‘nu_novell_com’.
Loading repository data…
Reading installed packages…
S | Name | Type | Version | Arch | Repository
–±-----------------------±--------±----------------±-------±------------------------------------------------
v | libgmodule-2_0-0 | package | 2.38.1-1.1 | i586 | openSUSE:13.1
i | libgmodule-2_0-0-32bit | package | 2.38.1-1.1 | x86_64 | openSUSE:13.1
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.12.1 | x86_64 | SLES11-SP3-Updates
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.10.2 | x86_64 | SLES11-SP3-Updates
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.8.1 | x86_64 | SLES11-SP3-Pool
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.8.1 | x86_64 | SUSE-Linux-Enterprise-Server-11-SP3 11.3.3-1.138

Well - one thing…knowing my system is SLES I wonder why I have got repositiories from openSUSE 13.1…

so ok. We know, what provides this module. Is there a way to find out, what needs the openSUSE repository? May be I dont need it at all and it may be deleted?

Further I can see now, that all these repositories provide the module. But if the module is addressed, from which repository will it be taken/used?

Hi
You can check via zypper if command

zypper if libgmodule-2_0-0

It should be the one from SLES11-SP3-Updates.

You can check to see what is installed (if any) via;

zypper se -i -r <repo#>

Where repo# is from the output of zypper lr


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE 13.1 (Bottle) (x86_64) GNOME 3.10.1 Kernel 3.11.10-17-desktop
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

On 01/07/2014 16:34, datanetservicesug wrote:
[color=blue]

still searching the web and cam eacross the idea to see whate provides
this module using the command:

zypper what-provides libgmodule-2.0.so.0

Refreshing service ‘nu_novell_com’.
Loading repository data…
Reading installed packages…
S | Name | Type | Version | Arch |
Repository
–±-----------------------±--------±----------------±-------±------------------------------------------------
v | libgmodule-2_0-0 | package | 2.38.1-1.1 | i586 |
openSUSE:13.1
i | libgmodule-2_0-0-32bit | package | 2.38.1-1.1 | x86_64 |
openSUSE:13.1
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.12.1 | x86_64 |
SLES11-SP3-Updates
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.10.2 | x86_64 |
SLES11-SP3-Updates
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.8.1 | x86_64 |
SLES11-SP3-Pool
v | libgmodule-2_0-0-32bit | package | 2.22.5-0.8.8.1 | x86_64 |
SUSE-Linux-Enterprise-Server-11-SP3 11.3.3-1.138

Well - one thing…knowing my system is SLES I wonder why I have got
repositiories from openSUSE 13.1…[/color]

Because it’s been added and it won’t have been by the SLES install itself.
[color=blue]

so ok. We know, what provides this module. Is there a way to find out,
what needs the openSUSE repository? May be I dont need it at all and it
may be deleted?[/color]

Nothing SLES-related needs the openSUSE repo.

You can see which packages have been installed from openSUSE:13.1 repo
by using “zypper se -i -r openSUSE:13.1”.
[color=blue]

Further I can see now, that all these repositories provide the module.
But if the module is addressed, from which repository will it be
taken/used?[/color]

Notice the version of the libgmodule-2_0-0 package from the
openSUSE:13.1 repo? It’s later than that offered by SLES11-SP3-Updates
and SLES11-SP3-Pool repos hence the reason it’s being found.

HTH.

Simon
SUSE Knowledge Partner


If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below. Thanks.

Hello smflood and malcolmlewis.

I am back from hols and first of all let me thank you for your posts.

Having used all your suggested commands it is quit clear that for some reasons (unknown to me so far) the openSUSE repository was used at some point. I did not intend to use the openSUSE repository and so far I am only using SLES standard features like DNS, Apache, MySQL etc. Therefore I don’t see a need to have this repository installed at all.

Question: Is there a way to uninstall the complete openSUSE repository? If for example I would use:

zypper rr openSUSE:13.1

That would surely remove the repository. But what happens then to my system? Does zypper have something like a rollback functionality for those modules that used to use SLES repositories so that the modules, that are currently using openSUSE repository do not end up in nirwanha?

The output of “zypper se -i -r openSUSE:13.1” holds quite a long list of modules related to openSUSE…

Thanks in advance (again…)

Here is the output of zypper se -i -r openSUSE:13.1

Reading through it carefully lets me beleive it could have been phpMyAdmin, that needed openSUSE repository…

S | Name | Summary | Type

–±-------------------------------±----------------------------------------------------------------------±-------

i | apache2-doc | Additional Package Documentation. | package

i | apache2-example-pages | Example Pages for the Apache 2 Web Server | package

i | apparmor-docs | AppArmor Documentation package | package

i | bundle-lang-common-en | Translations for a Group of Programs | package

i | bundle-lang-gnome-en | English translations for many GNOME programs | package

i | crda | 802.11 central regulatory domain agent | package

i | cryptsetup-mkinitrd | mkinitrd plugin scripts for encrypted root file system | package

i | cups-libs-32bit | Libraries for CUPS | package

i | elilo | EFI Linux Loader | package

i | fontconfig-32bit | Library for Font Configuration | package

i | glibc-32bit | Standard Shared Libraries (from the GNU C Library) | package

i | glibc-i18ndata | Database Sources for ‘locale’ | package

i | glibc-locale-32bit | Locale Data for Localized Programs | package

i | gnome-icon-theme-extras | GNOME Icon Theme Extras | package

i | gnome-icon-theme-symbolic | Symbolic icon theme for GNOME | package

i | gstreamer-0_10-plugin-esd | GStreamer Streaming-Media Framework Plug-Ins – EsounD plugin | package

i | gstreamer-0_10-plugin-gnomevfs | GStreamer Streaming-Media Framework Plug-Ins – gnome-vfs plugin | package

i | kernel-firmware | Linux kernel firmware files | package

i | kernel-vanilla | The Standard Kernel - without any SUSE patches | package

i | kpartx | Manages partition tables on device-mapper devices | package

i | libXext6-32bit | Common extensions to the X11 protocol | package

i | libXfixes3-32bit | X11 miscellaneous “fixes” extension library | package

i | libXp6-32bit | X Printing Extension client library | package

i | libXrender1-32bit | X Rendering Extension library | package

i | libXt6-32bit | X Toolkit Intrinsics library | package

i | libXv1-32bit | X Video extension library | package

i | libaudit1-32bit | Dynamic library for libaudit | package

i | libblkid1-32bit | Filesystem detection library | package

i | libcanberra-gtk-module-common | Portable sound event library – Common Files for GTK+ Modules | package

i | libcanberra-gtk2-module | Portable sound event library – GTK+ 2 Module | package

i | libcanberra-gtk2-module-32bit | Portable sound event library – GTK+ 2 Module | package

i | libcurl4-32bit | Version 4 of cURL shared library | package

i | libdb-4_8-32bit | Berkeley DB Database Library Version 4.8 | package

i | libgcrypt11-32bit | The GNU Crypto Library | package

i | libgio-2_0-0-32bit | General-Purpose Utility Library – Library for VFS | package

i | libglib-2_0-0-32bit | General-Purpose Utility Library | package

i | libgmodule-2_0-0 | General-Purpose Utility Library – Library for Modules | package

i | libgmodule-2_0-0-32bit | General-Purpose Utility Library – Library for Modules | package

i | libgssglue1-32bit | Generic GSSAPI Library | package

i | libgthread-2_0-0 | General-Purpose Utility Library – Library for Threads | package

i | libgthread-2_0-0-32bit | General-Purpose Utility Library – Library for Threads | package

i | libidn11-32bit | Support for Internationalized Domain Names (IDN) | package

i | libjbig2-32bit | JBIG1 lossless image compression library | package

i | libjpeg8-32bit | The MMX/SSE accelerated JPEG compression/decompression library | package

i | libjson0-32bit | JSON shared lib | package

i | liblcms1-32bit | Libraries for the Little CMS Engine | package

i | libldap-2_4-2-32bit | OpenLDAP Client Libraries | package

i | libopenssl0_9_8-32bit | Secure Sockets and Transport Layer Security | package

i | libopenssl1_0_0-32bit | Secure Sockets and Transport Layer Security | package

i | libpcre1-32bit | A library for Perl-compatible regular expressions | package

i | libpixman-1-0-32bit | Pixel manipulation library | package

i | libpng12-0-32bit | Library for the Portable Network Graphics Format (PNG) | package

i | libpng16-16-32bit | Library for the Portable Network Graphics Format (PNG) | package

i | libpulse0-32bit | Client interface to PulseAudio | package

i | libqt4-32bit | C++ Program Library, Core Components | package

i | libqt4-qt3support-32bit | C++ Program Library, Core Components | package

i | libqt4-sql-32bit | Qt 4 SQL related libraries | package

i | libqt4-x11-32bit | Qt 4 GUI related libraries | package

i | libssh2-1-32bit | A library implementing the SSH2 protocol | package

i | libtiff5-32bit | The Tiff Library (with JPEG and compression support) | package

i | libtirpc1-32bit | Transport Independent RPC Library | package

i | libuuid1 | Library to generate UUIDs | package

i | libuuid1-32bit | Library to generate UUIDs | package

i | libxml2-2-32bit | A Library to Manipulate XML Files | package

i | libxslt1-32bit | XSL Transformation Library | package

i | man-pages | Linux Manual Pages | package

i | nfs-doc | Support Utilities for NFS | package

i | pam-32bit | A Security Tool that Provides Authentication for Applications | package

i | pam-doc | Documentation for Pluggable Authentication Modules | package

i | phpMyAdmin | Administration of MySQL over the web | package

i | pwgen | Password generator | package

i | site-config | Site Paths Configuration for autoconf Based configure Scripts | package

i | suse-build-key | The public gpg key for rpm package signature verification | package

i | suse-module-tools | Configuration for module loading and SUSE-specific utilities for KMPs | package

i | wireless-regdb | 802.11 regulatory domain database | package

i | xkeyboard-config | The X Keyboard Extension | package

i | zypper-aptitude | aptitude compatibility with zypper | package

You want to remove all the packages that are installed from the openSUSE repo, then replace them with the equivalent packages from SLES, yes?

$ zypper se -i -r openSUSE:13.1 | grep ^i | cut -d '|' -f 2 | tr '\ ' ' ' > opensusepackages

That gets you a list of all the packages that are installed from the openSUSE:13.1 repo in a file called opensusepackages. Now disable the openSUSE repo and then

$ rpm -e --nodeps $(cat opensusepackages) $ zypper in $(cat opensusepackages)
The rpm command removes all the packages whilst ignoring dependency issues. The zypper command re-installs all those packages and because you’ve disabled the openSUSE repo, they get installed from the SLES repos. Once you’ve done that you can use

$ zypper verify

So check that all package dependencies are met.

Hello mikewillis.

That sounds very good. But before I act hasty and make mistakes…

  • How (exactly) do I disable the openSUSE repo?

  • The first zypper command went through and created the file. running cat on that file shows, there are no CR’s at the end. Its that intended so?

You can do it with the zypper command you previously posted.

$  zypper rr openSUSE:13.1

Or you can do it through YaST > Software Repositories

[QUOTE=datanetservicesug;22928]

  • The first zypper command went through and created the file. running cat on that file shows, there are no CR’s at the end. Its that intended so?[/QUOTE]
    Yes, because the tr command replaces all the new line characters with spaces.

Hello mikewillis.

Another problem comes up.

When I use “zypper rr openSUSE:13.1” there is an error message:

zypper: error while loading shared libraries: libuuid.so.1: cannot open shared object file: No such file or diretory

a “find / -name libuuid” returns an empty directory of that name located in /var/lib

where ist this going…?

Hmmm. If you run

$ ldd /usr/bin/zypper  | grep libu

you’ll see that zypper is linked against libuuid.so.1.

A better command would be

$ find / -name libuuid\\*

because that’ll find anything with a name starting libuuid rather than just anything called libuuid.

libuuid.so.1 is provided by a package called libuuid1. What’s the output of these commands (wrapping commands and output in CODE tags helps with readability by the way, look for the # button in the formatting options)

$ rpm -qf /lib64/libuuid.so.1 $ rpm -qi libuuid1
I suggest both commands because it’s not impossible for the libuuid1 package to be installed by the libuuid.so.1 file to be missing.
There was an update for the libuuid1 package in June. Can you download it from https://download.suse.com/Download?buildid=4IbC9nmzSAc~ ? Assuming you can, then if the machine thinks you have a libuuid1 package installed already you’ll need to remove it

$ rpm -e --nodeps libuuid1

Then install the one you just downloaded

$ rpm -ivh /path/to/libuuid1-2.19.1-6.54.1.x86_64.rpm

If you can’t download the patch, then do you have a SLES 11 SP3 x86_64 DVD? If so you could try using the libuuid1 package from that. I’d link you to a download for such a DVD but mysteriously I can’t find one. Ought to be able to find it via https://download.suse.com/ but the x86_64 iso isn’t coming up in the search results.

Problem Solved.

The rpm commands in your last posting showed, that libuuid1 was not installed anymore. Don’t know why.
I have downloaded the update you recommended and installed it, that went fine.

From here I started the procedure again from the beginning (disable opennSUSE etc…) and this time everything went without any errors
I was prompted that 42 modules will be installed, but I was brave and said yes. Again no errors.

I started a “zypper verify” and 3 more modules were to be installed. A “yes” went again without problems.
Another zypper verify tells me, all ist satisfied…

so - final health check is a reboot…and… Everything is ok!

mikewillis - Thank you very much!

Can you point me to any good documentation about rpm and its management in general? I know now, I have to dig deeper into it.

cheers from Germany

Woo!

Take a look at https://www.suse.com/documentation/sles11/book_sle_admin/data/cha_sw_cl.html
A very short incomplete guide to use rpm or zypper:
zypper - Use to install/uninstall packages from repositories and it’ll automatically identify other packages in the repositories that also need to be installed/uninstalled.
rpm - Use to install individual rpm files you’ve downloaded, you have to sort out dependencies yourself. Use if you want to rip out a package that other packages depend on. Use to query packages that are already installed.

A tad too fast.

phpMyAdmin is not working anymore. Indicates, that openSUSE was used by phpMyAdmin…

Well, It is not live threadning, so I will take some time to investigate and see, wether I can find a solution to run myPhpAdmin on SLES…

[QUOTE=datanetservicesug;22944]
Well, It is not live threadning, so I will take some time to investigate and see, wether I can find a solution to run myPhpAdmin on SLES…[/QUOTE]

There’s some phpMyAdmin SUSE SLE-11 SP 3 packages available at
http://software.opensuse.org/package/phpMyAdmin?search_term=phpmyadmin
though obviously they’re not supported by SUSE.
(You need to click the light grey not as obvious as it maybe should be link labelled “Show other versions” under the large green box labelled ‘Direct Install’)