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

Re: Problem on dpkg --unpack.



On 2010-01-04 17:48 +0100, Guillaume Ayoub wrote:

> I have the same problem. It appeared just after upgrading libc6 from 2.10.2-2
> to 2.10.2-3. Looking at the eglibc Changelog may help (but I didn't find
> anything).

Please file a bug against libc6.

> I tried to find the reason, and it seems to come from touch. Touch now works
> for me only for files, but not for folders:
>
> $ ls -l
> total 4
> drwxr-xr-x 2 user users 4096 jan.  4 17:22 test_directory
> -rw-r--r-- 1 user users    0 jan.  4 17:22 test_file
>
> $touch test_file
> $touch test_directory
> touch: setting times of `test_directory': Bad file descriptor
>
> tar uses touch and fails, dpkg uses tar and apt-get uses dpkg, so apt-get
> fails :). Other programs using touch on folders (such as postfix) fail to
> start too.
>
> A small quick and dirty hack is to use the --touch option for tar. You can do
> this with "$export TAR_OPTIONS='--touch'". After this, tar seems to work,
> postfix starts again. Unfortunately, dpkg does not use $TAR_OPTIONS (as said
> in bug #530860) and I didn't find a solution to pass an option to tar in dpkg.

It might help to write a small wrapper for tar, like this (assuming you
have /root/bin in $PATH before /bin):

#! /bin/sh
# /root/bin/tar
exec /bin/tar --touch "$@"

> My filesystem is ext3, my partition is not full. It worked well with
> libc6-2.10.2-2. I have quite an old kernel (2.6.21.1 modified by my hosting
> provider).

Such old kernels are probably not well tested by the eglibc developers.

> Without tar/dpkg/apt-get, it seems quite difficult to downgrade libc6 to
> 2.10.2-2. If someone had an idea, that would be *great* news.

If the trick suggested above does not work, you could use ar and tar
directly to extract /lib/libc-2.10.2.so from the libc6 2.10.2-2 .deb.

Sven


Reply to: