[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: severely broken dpkg (among other things)



On Mon, Mar 26, 2001 at 09:51:30PM -0800, John H. Robinson, IV wrote:
> On Mon, Mar 26, 2001 at 11:35:58PM -0600, Sam TH wrote:
> > 
> > I am entirely unable to discover what file it is reffering to.
> 
> have you run fsck on the affected filesystems?

The filesystem(s), all three of them, are all running reiserfs, so
they shouldn't require this sort of surgery.  

However, attempting to run fsck on the filesystems produced
interesting results.  Fsck on / worked, but /usr/ and /var/ didn't
both complainging that they were mounted read-write.  This, of course,
suggests that / is mounted read-only.  However, no only does mount
disagree with this, but since this works

[root@samth apt]$ touch /foobar

I am forced to conclude that / is mount rw.  What would be causing
fsck to act differently?

> have you tried running strace with dpkg?
> 
> $ sudo strace dpkg -i <package>
> 

This produced lots of interesting results.  The relevant ENOENTS are 

open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or
directory)
connect(7, {sin_family=AF_UNIX, path="
/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
connect(7, {sin_family=AF_UNIX, path="
/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
unlink("/var/lib/dpkg/reassemble.deb")  = -1 ENOENT (No such file or
directory)
open("/var/lib/dpkg/info/kview.list", O_RDONLY) = -1 ENOENT (No such
file or directory)
rename("/var/lib/dpkg/updates/tmp.i", "/var/lib/dpkg/updates/0000") =
-1 ENOENT (No such file or directory)
rmdir("/var/lib/dpkg/reassemble.deb")   = -1 ENOENT (No such file or
directory)
unlink("/var/lib/dpkg/status-old")      = -1 ENOENT (No such file or
directory)
link("/var/lib/dpkg/status", "/var/lib/dpkg/status-old") = -1 ENOENT
(No such file or directory)
unlink("/var/lib/dpkg/available-old")   = -1 ENOENT (No such file or
directory)
link("/var/lib/dpkg/available", "/var/lib/dpkg/available-old") = -1
ENOENT (No such file or directory)

I tried creating available-old by copying available.  But that didn't
help, since dpkg seems to delete that before it got to use it.  The
error that produces the dpkg error message is being unable to find
/var/lib/dpkg/updates/tmp.i Unfortunately, /var/lib/dpkg/updates is
empty.  

> this is a weird problem. perhaps shared libs problems? do any other apps
> have problems, like ldconfig? [1]

ldconfig seems to work fine.

> 
> have you tried checking the binaries against the md5sums in
> /var/lib/dpkg/info[2]?
> $ md5sum -vc /var/lib/dpkg/info/<package>.md5sums

Strangely, dpkg seems not to have an md5sums file.  Maybe that's a
result of the failed installation of dpkg by dpkg.

> $ cat /var/lib/dpkg/info/*.md5sums | md5sum -vc
> 

This produces lots of missing files.  However, these are most likely
due to previous complete lossage of /usr, which means that dpkg thinks
that lots of files should be there, but aren't.  So this isn't much
help.  But it doesn't find any files with the wrong md5sum.  

I'm still stumped.  Any other ideas?
           
sam th --- sam@uchicago.edu --- http://www.abisource.com/~sam/
OpenPGP Key: CABD33FC --- http://samth.dyndns.org/key
DeCSS: http://samth.dynds.org/decss

Attachment: pgp9oyiUNcwex.pgp
Description: PGP signature


Reply to: