
Doing an strace on apt-get update shows it writes to files in the /var/lib/apt/lists directory and to the /var/lib/dpkg/status file but it does __not__ write to the availibilty file.
I will try to resolve some of the confusion I have seen here. dselect is obsolete, it is recommended you don't use it anymore. It could be broken. It probably doesn't support features like apt pinning properly, or being able to let you select from multiple versions of a package. Use something like aptitude instead. The only recommended way of upgrading from one release to another release is with "apt-get dist-upgrade". No other methods (including aptitude) are recommended (although this doesn't mean they won't work). It is not recommended that you have a mix of "stable" and "testing" or "unstable" either, it could break (unless you are very careful). /var/lib/dpkg/status is a list of all currently installed packages. As a result "apt-get update" has no need to change this, because nothing is installed, upgraded or removed. /var/lib/apt/lists is the authoritative list of packages available. However, these are text files, which are slow to read and search every time you run apt-get. So apt-get creates cache/index files under /var/cache/apt/ to speed up searches. As dselect is so old, I don't think it supports this mechanism. It might in fact use /var/lib/dpkg/available, as mentioned here. This is, I believe, a legacy file. I am not sure what is responsible for updating /var/lib/dpkg/available. It is possible that the mechanism is broken, because dselect is considered legacy, and nobody noticed that it broke. I might have suggested that only dselect updates this file, however I notice I have this file, even though I have never used dselect. dselect might update this file automatically on start, based on this thread it looks like it doesn't.