0

So, some time ago I wanted to update mpd from 1.5 to 1.6 which required a newer version of libglib( >= 2.31.8) on amd64, so I compiled them from source as I was on debian oldstable and couldn't find an easier way of doing that. For various reasons I didn't have access to that system again until now. When I tried to run mpd it gave me the following error:

mpd/usr/bin/mpd: symbol lookup error: /usr/bin/mpd: undefined symbol: g_malloc_n failed!

I tried reinstalling mpd but to no result, so then I tried to install the old libglib from the package manager this time. The installation didn't do much as it reported libglib to be the newest version and then when it tried to install some additional packages (such as libglib2.0-dev or libglib2.0-doc) it failed giving this error:

* Installing 1 assembly from libglib2.0-cil into Mono
/usr/bin/mono: symbol lookup error: /usr/bin/mono: undefined symbol: g_malloc0_n
Use of uninitialized value $_ in scalar chomp at /usr/share/cli-common/runtimes.d/mono line 144.
Use of uninitialized value $fullname in concatenation (.) or string at /usr/share/cli-common/runtimes.d/mono line 113.
/usr/bin/mono: symbol lookup error: /usr/bin/mono: undefined symbol: g_malloc0_n

So then I tried my luck with apt-get --reinstall libglib2.0 and the output was this:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libglib2.0-0' for regex 'libglib2.0'
Note, selecting 'libglib2.0-dev' for regex 'libglib2.0'
Note, selecting 'libglib2.0-doc' for regex 'libglib2.0'
Note, selecting 'libglib2.0-cil' for regex 'libglib2.0'
Note, selecting 'libglib2.0-0-dbg' for regex 'libglib2.0'
Note, selecting 'libglib2.0-dbg' for regex 'libglib2.0'
Note, selecting 'libglib2.0-0-refdbg' for regex 'libglib2.0'
Note, selecting 'libglib2.0-data' for regex 'libglib2.0'
Note, selecting 'libglib2.0-cil-dev' for regex 'libglib2.0'
0 upgraded, 0 newly installed, 8 reinstalled, 0 to remove and 0 not upgraded.
7 not fully installed or removed.
Need to get 0 B/6,964 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 55452 files and directories currently installed.)
Preparing to replace libglib2.0-0 2.24.2-1 (using .../libglib2.0-0_2.24.2-1_amd64.deb) ...
Unpacking replacement libglib2.0-0 ...
Preparing to replace libglib2.0-data 2.24.2-1 (using .../libglib2.0-data_2.24.2-1_all.deb) ...
Unpacking replacement libglib2.0-data ...
Preparing to replace libglib2.0-dev 2.24.2-1 (using .../libglib2.0-dev_2.24.2-1_amd64.deb) ...
Unpacking replacement libglib2.0-dev ...
Preparing to replace libglib2.0-doc 2.24.2-1 (using .../libglib2.0-doc_2.24.2-1_all.deb) ...
Unpacking replacement libglib2.0-doc ...
Preparing to replace libglib2.0-0-dbg 2.24.2-1 (using .../libglib2.0-0-dbg_2.24.2-1_amd64.deb) ...
Unpacking replacement libglib2.0-0-dbg ...
Preparing to replace libglib2.0-0-refdbg 2.24.2-1 (using .../libglib2.0-0-refdbg_2.24.2-1_amd64.deb) ...
Unpacking replacement libglib2.0-0-refdbg ...
Setting up mono-gac (2.6.7-5.1) ...
* Installing 1 assembly from libglib2.0-cil into Mono
/usr/bin/mono: symbol lookup error: /usr/bin/mono: undefined symbol: g_malloc0_n
Use of uninitialized value $_ in scalar chomp at /usr/share/cli-common/runtimes.d/mono line 144.
Use of uninitialized value $fullname in concatenation (.) or string at /usr/share/cli-common/runtimes.d/mono line 113.
/usr/bin/mono: symbol lookup error: /usr/bin/mono: undefined symbol: g_malloc0_n
E: installing Assembly /usr/lib/cli/glib-sharp-2.0/glib-sharp.dll failed
E: Installation of libglib2.0-cil with /usr/share/cli-common/runtimes.d/mono failed
dpkg: error processing mono-gac (--configure):
 subprocess installed post-installation script returned error exit status 9
configured to not write apport reports
                                      dpkg: dependency problems prevent configuration of mono-runtime:
 mono-runtime depends on mono-gac (= 2.6.7-5.1); however:
  Package mono-gac is not configured yet.
dpkg: error processing mono-runtime (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libmono-corlib2.0-cil:
 libmono-corlib2.0-cil depends on mono-runtime (>= 2.6.7); however:
  Package mono-runtime is not configured yet.
 libmono-corlib2.0-cil depends on mono-runtime (<< 2.6.8); however:
  Package mono-runtime is not configured yet.
dpkg: error processing libmono-corlib2.0-cil (--configure):
 dependency problems - leaving unconfigured
configured to not write apport reports
                                      configured to not write apport reports
                                                                            dpkg: dependency problems prevent configuration of libmono-system2.0-cil:
 libmono-system2.0-cil depends on libmono-corlib2.0-cil (>= 2.6.3); however:
  Package libmono-corlib2.0-cil is not configured yet.
 libmono-system2.0-cil depends on mono-runtime (>= 2.6.7); however:
  Package mono-runtime is not configured yet.
 libmono-system2.0-cil depends on mono-runtime (<< 2.6.8); however:
  Package mono-runtime is not configured yet.
dpkg: error processing libmono-system2.0-cil (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libmono-posix2.0-cil:
 libmono-posix2.0-cil depends on libmono-corlib2.0-cil (>= 2.6.3); however:
  Package libmono-corlib2.0-cil is not configured yet.
 libmono-posix2.0-cil depends on libmono-system2.0-cil (>= 2.6.3); however:
  Package libmono-system2.0-cil is not configured yet.
 libmono-posix2.0-cil depends on mono-runtime (>= 2.4); however:
  Package mono-runtime is not configured yet.
dpkg: error processing libmono-posix2.0-cil (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libglib2.0-cil:
 libglib2.0-cil depends on libmono-corlib2.0-cil (>= 1.2.2.1); however:
  Package libmono-corlib2.0-cil is not configured yet.
 libglib2.0-cil depends on libmono-system2.0-cil (>= 2.4.3); however:
  Package libmono-system2.0-cil is not configured yet.
dpkg: error processing libglib2.0-cil (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuraconfigured to not write apport reports
                                                                                 configured to not write apport reports
                 configured to not write apport reports
                                                       configured to not write apport reports
                                                                                             tion of libglib2.0-cil-dev:
 libglib2.0-cil-dev depends on libglib2.0-cil (= 2.12.10-1); however:
  Package libglib2.0-cil is not configured yet.
dpkg: error processing libglib2.0-cil-dev (--configure):
 dependency problems - leaving unconfigured
Setting up libglib2.0-0 (2.24.2-1) ...
Setting up libglib2.0-data (2.24.2-1) ...
Setting up libglib2.0-dev (2.24.2-1) ...
Setting up libglib2.0-doc (2.24.2-1) ...
Setting up libglib2.0-0-dbg (2.24.2-1) ...
Setting up libglib2.0-0-refdbg (2.24.2-1) ...
Errors were encountered while processing:
 mono-gac
 mono-runtime
 libmono-corlib2.0-cil
 libmono-system2.0-cil
 libmono-posix2.0-cil
 libglib2.0-cil
 libglib2.0-cil-dev
E: Sub-process /usr/bin/dpkg returned an error code (1)

apt-get check didn't find any broken deps so it didn't really help. Thankfully, nothing major seems to be broken. As I said, because there was quite some time since I compiled libglib I don't really remember what I did, and I'm not sure how to revert it.

svart
  • 55
  • For future reference, the correct way to get more recent software versions on more recent versions of Debian is by backporting. See http://unix.stackexchange.com/q/112157/4671 Did you do the install into /usr/local or your main system? Doing local installs into your main system is not a good idea. I'm surprised apt-get check does not complain. What does apt-get -f install show? – Faheem Mitha Feb 26 '14 at 22:21
  • Almost the same thing with --reinstall. I don't really remember where I installed it, but there are some libglib files in /usr/local/ – svart Feb 26 '14 at 22:29
  • I don't understand your response. What does apt-get -f install show? I suggest deleting those files, unless you still have the source directory you installed from, in which case try uninstall or something similar. – Faheem Mitha Feb 27 '14 at 17:41
  • That's what I did. I went to /usr/lib/local/pkgconfig/ and downloaded the version that was reported there, and then did make uninstall and now all seems to be back to normal. – svart Feb 27 '14 at 20:30
  • Ok, is your problem solved then? For future reference, try to avoid local installs. Consider using backports instead. Creating backports oneself is not hard; it just needs a little practice. – Faheem Mitha Feb 27 '14 at 20:43
  • Yeah, it's solved. I'll try using backports next time. – svart Feb 27 '14 at 22:21
  • Ok. Please write what you did as an answer, and then mark that accepted. That way people coming here will know your problem was solved. It is good practice. If you ping me I'll also upvote it. Thanks. – Faheem Mitha Feb 27 '14 at 22:27

1 Answers1

1

So, the problem was caused from me having compiled another version of glib in /usr/local/. Because I did not remember the exact version I had compiled, I went to /usr/local/lib/pkgconfig/ and looked at the libglib2.0-0.pc file, which reported the 2.16 version. Because I did not have the source files, I re-downloaded them from http://ftp.gnome.org/pub/gnome/sources/glib/2.16/glib-2.16.6.tar.gz and did make uninstall, thus removing all the problematic files, and with a apt-get update && apt-get upgrade all was back to normal.

svart
  • 55