Apps :: dpkg and libc6



I'm trying to install a new package (Heartbeat - but that appears to be somewhat incedental to my problem) and am having some dependancy trouble.

I start off by getting the following MyDSL extesions:
Code Sample
dsl-dpkg
gnu-utils
gcc1-with-libs
tcltk8.3
gtk2-0705
libc6


Then I try:
Code Sample
dpkg -i heartbeat_1.2.5-0bpo2_i386.deb


There are other dependancy problems, but the main one is this:
Code Sample
heartbeat depends on libc6 (>=2.3.2.ds1-21); however;
Version of libc6 on system is 2.3.2.ds1-10.


...which is strange, since the libc6.dsl package that I already installed is 2.3.2.ds1-22.

Does anyone know how to let dpkg know where to find the newly installed libc6?
Or could the MyDSL install be failing?

Next, I tried manually downloading and installing (dpkg -i) libc6_2.3.2.ds1-22sarge6_i386.deb.  That works to some degree, in that new Heartbeat install attemps do not list that missing dependancy any longer.

I can also then manually install many of the other dependancies until I hit libpils0.  Which itself is dependant on a newer C library: libc6_2.3.6.ds1-13
Which, when I try to install it, gives me the following error:
Code Sample
Another copy of the C library was found via /etc/ld.so.conf.
It is not safe to upgrade the C library in this situation;
please remove the directory for /etc/ld.so.conf and try again.


ld.so.conf is read-only, but I am able to over-write it with an edited version.  However, removing that seems to make a real mess so I don't think that is the solution. (Correct me if I'm wrong.)

I have also tried installing the newer C library at the very beginning of the process but it is dependant on another library that is dependant on the 2.3.2 version of libc6.  I have also tried the earliest and latest version of Heartbeat, they all have the same major dependancies.  So...I'm pretty much stuck.

I'm using a DSL 3.3 LiveCD install running toram.

Thanks, in advance, for any help and suggestions.

Well, I guess I'm the only one who has had this issue.

In any case, I found a random thread where mikshaw indicated that packages compiled using different systems have different requirements - which I did not realize, being fairly new to Linux.
Long story short, I was able to find the packages I needed that were all compiled with libc6_2.3.2.ds1-22 or earlier.

When I get the whole Heartbeat system up and running, I'll post a HOWTO for this incredibly useful server redundancy tool.

The libc6 extension didn't satisfy the dpkg dependency issue because dpkg does not know that it is installed.  It's a .dsl, not a deb package.

Might work to install the libc6 extension, then try to install with something like:

dpkg -i --ignore-depends=libc6 heartbeat_1.2.5-0bpo2_i386.deb

I've occasionally had success with this approach in the past.

If you know all dependencies are actually present but dpkg doesn't think so, and if there are no configure scripts that need to get run when dpkg does its business, sometimes you can even get away with just unpacking the thing onto root:

dpkg --unpack some_difficult_deb.deb

Quote (WDef @ June 28 2007,17:01)
The libc6 extension didn't satisfy the dpkg dependency issue because dpkg does not know that it is installed.  It's a .dsl, not a deb package.

Might work to install the libc6 extension, then try to install with something like:

dpkg -i --ignore-depends=libc6 heartbeat_1.2.5-0bpo2_i386.deb

I've occasionally had success with this approach in the past.

If you know all dependencies are actually present but dpkg doesn't think so, and if there are no configure scripts that need to get run when dpkg does its business, sometimes you can even get away with just unpacking the thing onto root:

dpkg --unpack some_difficult_deb.deb

Thanks for replying, WDef - that's what I was trying to find out; if there was any way of letting dpkg know that the correct libc6 was, in fact, already installed.  :)

In any case, thanks for the additional dpkg commands and how to use them.  I'm somewhat amazed at how much Linux information you can find and read on a subject and yet no one ever actually explains how to do it!


original here.