Hello All,

I need some help understanding how the busybox 'dpkg -i' command works.
Specifically, I would like to know how the mechanism for checking debian
package dependencies works. I'd like to know what essential files are
needed to do the checking.

I've built a few packages and tried to install them. Those with
dependencies are failing to install for some reason.

Here is my scenario:

I built a binary libc6-i386.deb package on my Debian host and installed
it on another host which has nothing but a bare Linux 2.6.21.1 kernel
and a static busybox 1.6.0 installed. I used the busybox 'dpkg' command
to install the package. Everything went fine and the output of the 'dpkg
-l' command is:

Name Version
+++-=============-==============
ii libc6-i386 2.3.6

After this, I built a busybox package to re-install the full busybox
implementation on to my target host. This package is dependent on
libc6-i386 as can be seen from the 'dpkg --info' command:

[EMAIL PROTECTED]:~/packages$ dpkg --info busybox_1.6.0-1_i386.deb
new debian package, version 2.0.
size 233752 bytes: control archive= 619 bytes.
444 bytes, 12 lines control
258 bytes, 4 lines md5sums
Package: busybox
Version: 1.6.0-1
Section: unknown
Priority: extra
Architecture: i386
Depends: libc6-i386 (>= 2.3.5-1)
Installed-Size: 436
Maintainer: Dallas Clement <[EMAIL PROTECTED]>
Description: Busybox UNIX command utilities.
BusyBox combines tiny versions of many common UNIX utilities into \
a single small executable. It provides replacements for most of the \
utilities you usually find in GNU fileutils, shellutils, etc.

When I try to install this package, it fails during the installation.
This is the error I get:

dpkg: package busybox depends on libc6-i386, which is not installed or
flagged to be installed


I cannot understand why I am getting this error, when clearly the
libc6-i386 package is installed as you can see from the previous 'dpkg
-l' output.

In fact, the contents of the /var/lib/dpkg/status file are as follows:

cat /var/lib/dpkg/status

Package: libc6-i386
Version: 2.3.6
Section: libs
Priority: required
Architecture: i386
Maintainer: Dallas Clement <[EMAIL PROTECTED]>
Description: The GNU C library
The GNU C library is the standard C/C++ library \
needed to support most Linux applications.
Status: install ok installed

----

Clearly, the libc6-i386 package is installed.

Is there anything else that 'dpkg' checks other than this 'status' file
to do the dependency check? Is it just a simple package name check, or
is there more involved?

Any insight you could provide will be greatly appreciated!  I'm at my
wit's end trying to get this to work.

_______________________________________________
busybox mailing list
busybox@busybox.net
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to