Package ordering tool for Debian
Currently at Version 0.5
This is a script that takes the Packages files and generates an ordering that would be
good for CDs At the moment it produces an awful lot of output and it is recommended to pipe the
output through less for easy perusal.
Goals
The basic idea of this program is to generate an ordering of packages that will:
- Organise hopefully most of the popular packages all on the first CD.
- With a smart apt, allow all of Debian to be installed by only putting
each CD in once.
To achieve this, the program uses both the output of the Debian
Popularity Contest (the full output file) and the Packages files from Potato.
Usage
To run this program you need at least two files in the current directory. Some named Packages.[dist] which is the
package list of the indicated section of Potato (or any other release). The other file is all-popcon-results.txt.
The packages files are named, for example Packages.main or Packages.non-us.contrib. This script will
scan the given files and check that all the packages mentioned in the Depends fields exist. It then
summarises all the found dependencies and generates an ordering that would be useful for CDs.
A recent change is that you can now exclude certain distributions from the generated output but still
consider them while checking dependencies.
package-order.pl
Results
So far, one useful thing to come out of this is the fact that some packages depend on other packages
which do not exist anymore. It would be very silly to ship Potato with the dependencies not even self-consistent.
Also, from the statistics given by the popularity contest (which admittedly don't really represent the
complete Debian community), it would seem that by careful arranging of packages onto CDs, you can make
sure that 99% of people will only need the first CD. This is just an estimate at the moment and the
popularity contest needs to get many more entrants to become truly useful.
Heuristics
Some special heuristics have been added for the task-* packages. To make sure they are all included as
early as possible, they are given a score of 10000 plus the score of each of the dependencies. This is
currently buggy with respect to task-* packages depending on one another.
Sample output
To give a better idea of the output generated by this script, here is an example of the generated output
(after all the currently generated additional info). It only considers the main and contrib distributions.
sample-output.txt.gz
Comments
By Martijn van Oosterhout (kleptog (at) svana.org)
Copyright © 2000-2006 - Last modified 4/05/2001