Re: Help using 'dpkg' command to install debian packages

2007-07-13 Thread Dallas Clement
On Fri, 2007-07-13 at 08:23 +1000, Hamish Moffatt wrote:
 On Thu, Jul 12, 2007 at 08:49:26AM -0500, Dallas Clement wrote:
  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:
 
 [...]
 
  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.
 [...]
 
  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.
 
 It looks like you are doing the right thing to me, ie if you were using
 the real dpkg I believe it would work. Perhaps busybox's emulation is
 buggy.
 
 Hamish

I have confirmed that the busybox 'dpkg' command is indeed buggy.  It is
not checking dependencies correctly.  I wasn't able to pinpoint the
exact location in the source code for the problem I reported earlier.
The code is not exactly easy reading.  

I download the real dpkg source, built it and am using it instead.  It
works perfectly.

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


Help using 'dpkg' command to install debian packages

2007-07-12 Thread Dallas Clement
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


Re: Help using 'dpkg' command to install debian packages

2007-07-12 Thread Hamish Moffatt
On Thu, Jul 12, 2007 at 08:49:26AM -0500, Dallas Clement wrote:
 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:

[...]

 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.
[...]

 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.

It looks like you are doing the right thing to me, ie if you were using
the real dpkg I believe it would work. Perhaps busybox's emulation is
buggy.

Hamish
-- 
Hamish Moffatt VK3SB [EMAIL PROTECTED] [EMAIL PROTECTED]
___
busybox mailing list
busybox@busybox.net
http://busybox.net/cgi-bin/mailman/listinfo/busybox


Re: Help using 'dpkg' command to install debian packages

2007-07-12 Thread Dallas Clement
On Fri, 2007-07-13 at 08:23 +1000, Hamish Moffatt wrote:
 On Thu, Jul 12, 2007 at 08:49:26AM -0500, Dallas Clement wrote:
  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:
 
 [...]
 
  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.
 [...]
 
  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.
 
 It looks like you are doing the right thing to me, ie if you were using
 the real dpkg I believe it would work. Perhaps busybox's emulation is
 buggy.
 
 Hamish

I think you're right - must be buggy.  Though, what I am doing seems so
simple!!  I'm looking at the file dpkg.c now and putting in some debug
messages to see why it is behaving this way.

Cheers,
Dallas

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