On my home computer, I mirror Debian i386 versions, including potato and woody. The use of pool packages has hindered my search for appropriate packages. Here I give three techniques I once used, the limitations caused by "pool" packages, and partial solutions. Below, of the three techniques, "1" searches by time, presenting the most difficulty under the new pool scheme.
1. Finding recent packages (involving creation time). With much of woody pointing into ...debian/pool, on my mirror, I can no longer easily find the last day's package additions to woody. Under potato, I would search my mirror like the following example, find /usr/local/mirror/mirrors/debian/dists/potato -ctime -1 -ls One solution to this would put in the package descriptions file, Packages.gz, a "Date:" field. Another solution would strip from Packages* files all "Filename:" fields, get the date of this "Filename:" from the local mirror, then sort the result by date. I currently use this approach, whose script I attach at the bottom. 2. Finding packages by name in a particular Debian version. Under potato, I could also search for a package simply, locate gimp_ |grep potato This can now largely be accomplished, after an "apt-get update", with grep-available -P -s Package gimp However, six months after potato's release, I more often install woody packages into my potato distribution; sometimes I am interested in potato packages and sometimes in woody packages. So, I must now search through some scheme like, grep-available -P -s Filename gimp \ $(locate Packages| grep woody) However, since I only download Packages.gz, I must always uncompress Packages.gz. So, searching for packages not in the current installation version (potato) has become more difficult for those having the benefit of a local Debian mirror. 3. Search for software in a particular section and a particular Debian version. Under potato, with my Debian mirror, I could see available mail software by simply entering, ls /usr/local/mirror/mirrors/debian/dists/potato/*/binary-i386/mail For my current installation (potato), I can enter grep-available -F Section mail -s Package But for the testing distribution woody, I must enter something like, grep-available -F Section mail -s Filename \ $(locate Packages| grep woody) Even after I find a prospective package, I must now perform a second search for the exact filename in my local mirror, which before had the section in the package's path; eg, "/mail/" in .../debian/dists/potato/non-free/binary-i386/mail/xfmail_1.4.4-1.deb If one lacks a local mirror, and if one isn't looking for Debian packages that are new (by time stamp), finding-and-getting prospective packages (on woody when one runs potato) is not much more difficult than getting them off a local mirror. Without altering /etc/apt/sources.list, one can keep a local copy of "woody" Packages* files to search as above in "2" and "3", then get those files with, for example, # From a woody Packages file, # you see "Filename: pool/main/i/imp/imp_2.2.3-19_all.deb" wget ftp://ftp.us.debian.org/debian/pool/main/i/imp/imp_2.2.3-19_all.deb # The following script lists in reverse time order # all Debian "woody" packages on my local mirror. # I run this script as, for example, # this-scripts-name woody # Here are typical Packages* files, uncompressed and renamed # into the single directory, $DEBIAN_PACKAGE_ROOT. # Packages.woody.main # Packages.woody.contrib # Packages.woody.non-free # # Packages.woody.non-US.main # Packages.woody.non-US.contrib # Packages.woody.non-US.non-free # DEBIAN_ROOT=/usr/local/mirror/mirrors/debian/ DEBIAN_ROOT_NON_US=/usr/local/mirror/mirrors/debian-non-US/ DEBIAN_PACKAGE_ROOT=/usr/local/mirror/debian-briefing/ #I consolidate, rename, and uncompress relevant Packages* # into the above directory. #If no Debian version entered on command line, use "woody": DEBIAN_VERSION=${1:-woody} shopt -s extglob #allow special expansions like "+(...)". ( (grep-available -n -s Filename '' \ ${DEBIAN_PACKAGE_ROOT}Packages.\ ${DEBIAN_VERSION}.+(main|contrib|non-free)* | xargs --replace echo ${DEBIAN_ROOT}{} ) (grep-available -n -s Filename '' \ ${DEBIAN_PACKAGE_ROOT}Packages.\ ${DEBIAN_VERSION}.non-US* | xargs --replace echo ${DEBIAN_ROOT_NON_US}{} ) ) \ |xargs --replace /bin/ls -h -l --full-time {} 2>/dev/null \ |sort -k 10,10n -k 7,7M -k 8,8n -k 9,9 \ |perl -ne 'push(@words, /\S+\s+/g) ; print @words[4,6,7,8,9,10], "\n" ; undef @words' \ |column -t ---- Jameson C. Burt, NJ9L Fairfax, Virginia, USA [EMAIL PROTECTED] http://www.coost.com (202) 690-0380 (work) You can only find truth with logic if you have already found truth without it. -- G.K. Chesterton