Re: Bug#40706: usr/share/doc vs. /usr/doc
Ben Gertzfield wrote:
> If I remember, dpkg does not like replacing a directory with a
> symlink. This may or may not still be the case.
Ugh, you're right:
joey@gumdrop:/tmp/scratch>dpkg --contents foo.deb
drwxrwxr-x joey/joey 0 1999-07-16 14:11 ./
drwxr-xr-x joey/joey 0 1999-07-16 14:11 foo/
drwxr-xr-x joey/joey 0 1999-07-16 14:11 foo/bar/
drwxr-xr-x joey/joey 0 1999-07-16 14:11 foo/bar/baz/
joey@gumdrop:/tmp/scratch>dpkg --contents foo-new.deb
drwxrwxr-x joey/joey 0 1999-07-16 14:12 ./
drwxr-xr-x joey/joey 0 1999-07-16 14:12 foo/
drwxr-xr-x joey/joey 0 1999-07-16 14:12 foo/bar/
lrwxrwxrwx joey/joey 0 1999-07-16 14:12 foo/bar/baz -> /etc/
joey@gumdrop:/tmp/scratch>su
Password:
Sorry, try again.
Password:
root@gumdrop:/tmp/scratch>dpkg -i foo.deb
Selecting previously deselected package foo.
(Reading database ... 31894 files and directories currently installed.)
Unpacking foo (from foo.deb) ...
Setting up foo (1.2.83) ...
root@gumdrop:/tmp/scratch>dpkg -i foo-new.deb
(Reading database ... 31897 files and directories currently installed.)
Preparing to replace foo 1.2.83 (using foo-new.deb) ...
Unpacking replacement foo ...
Setting up foo (1.2.83) ...
root@gumdrop:/tmp/scratch>ls -l /foo/bar
total 3
drwxr-xr-x 3 joey joey 1024 Jul 16 14:12 ./
drwxr-xr-x 3 joey joey 1024 Jul 16 14:12 ../
drwxr-xr-x 2 joey joey 1024 Jul 16 14:11 baz/
I still think this is a good proposal -- if we could only fix dpkg to deal
with this better.
Aha!
root@gumdrop:/tmp/scratch>dpkg -i foo.deb
Selecting previously deselected package foo.
(Reading database ... 31894 files and directories currently installed.)
Unpacking foo (from foo.deb) ...
Setting up foo (1.2.83) ...
root@gumdrop:/tmp/scratch>ls -l /foo/bar
total 1
drwxr-xr-x 2 joey joey 1024 Jul 16 14:11 baz/
root@gumdrop:/tmp/scratch>dpkg -i foo-newest.deb
(Reading database ... 31897 files and directories currently installed.)
Preparing to replace foo 1.2.83 (using foo-newest.deb) ...
Unpacking replacement foo ...
Setting up foo (1.2.83) ...
root@gumdrop:/tmp/scratch>ls -l /foo/bar
total 0
lrwxrwxrwx 1 joey joey 5 Jul 16 14:16 baz -> /etc//
What I did here is a preinst that rmdir'd /foo/bar/baz. And that works
around the problem. I also tried it with files in the directory, if the
preinst rm -rf's the directory it works ok.
--
see shy jo
Reply to: