problem with dselect and the "dists" hierarchy
abstract: there might be a serious problem involving dselect and hamm's
new distribution format that threatens to make Debian 2.0 cd's unusable.
I've been doing some tests lately with a harddisk with a full mirror of
hamm-i386. Apart from keeping my main home machine up to date with it, I
have also tried some of the various access methods that dselect provides
With the ftp method I have found no problems. With the various "disk"
methods, there are problems however. These problems are such that, if
they are not fixed before hamm is declared "stable" and subsequently
pressed onto millions (oh well) of silver cd's, these cd's will be pretty
much worthless to most people that buy these cd's.
The problem appears to be present all of the in the "cdrom", "nfs",
"harddisk" and "mounted" access methods that all make use of the same
setup script /usr/lib/dpkg/methods/disk/setup . The script has
"stable/binary" hardcoded all over. There's are probably also a couple of
/tmp races in it.
At first, I've tried to kludge around the problem by creating a "stable"
symlink in the /debian distribution root, but that doesn't really solve
the problem, as the format of the distribution tree has changed in more
than one place.
I found that when I fill in bogus information when setting up any of the
"disk" methods in dselect and then editing the contents of
/var/lib/dpkg/methods/disk/shvar.* manually will make dselect's update and
install methods work if the edits are done right. It works, but this is
not something that should reasonably be expected from new users just
wanting to install Debian from cd.
A workaround is still possible, using a couple of smart symlinks, but
there are a couple of reasons why it is better to look into the
- the options for multiple binary cd's will probably have to be
considered anyway. I don't think that dselect in it's current form is
capable of handling that;
- the script uses /tmp files, quite possibly in an unsecure manner;
- it would be nice if some form of autodetection were added to the setup
script. We all agree that a lot of new users are confused when faced
with questions like "what is your block device?" Currently, this is
the way dselect's interacts with the user;
- /usr/lib/dpkg/methods/disk/setup is a shell script with snippets of perl
code incuded. IMHO it is not a bad idea to write the whole script in
perl, considering that it assumes perl to be present anyway.
To UNSUBSCRIBE, email to firstname.lastname@example.org
with a subject of "unsubscribe". Trouble? Contact email@example.com