dpkg and dselect both use the available packages information found in the file /var/lib/dpkg/available. This file is constructed from the Packages file found in the binary, contrib, and non-free sections of these archives. There are several tools that dpkg provides, as options, for creating and managing this file.