To run the program, change the config.xml file to suit your needs and run ./debian-multimirror config.xml Debian-multimirror: ~~~~~~~~~~~~~~~~~~~ DESCRIPTION: debian-multimirror is a tool that eases and automates the creation and maintenance of custom Debian mirrors. It uses parallel programming to exploit redundancy between mirrors and download from several mirrors at the same time for best performance and less mirror load. A custom algorithm is used to select a consistent set of packages, and out of sync or even broken mirrors can still be used. SHA1 and MD5 package information is used to assure data integrity. It uses an XML file for configuration of the local mirror, and writes the correspondent "Package" files after finishing mirroring. NOTES: Be careful with 1, since it will delete *.deb files that are not registered in the destination directory. In some cases, if for some reason the package list in memory doesn't have packages it *MIGHT DELETE* all your .deb files in your mirror directory. Exclude is always checked before include, when deciding to include or exclude a package checks will be done in this order: * it's in excluded packages ? exclude * it's in included packages ? include * it's in excluded regexp ? exclude * it's in included regexp ? include * it's in excluded section ? exclude * it's in included section ? include * exclude all ? exclude * include all ? include -> exclude Usage hints: When you are going to install some packages with apt, often it will spit: root@mayhem:/home/piotr# apt-get build-dep sodipodi Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: libgcrypt-dev libgnutls5-dev libopencdk-dev libtasn1-dev The following NEW packages will be installed: indent libatk1.0-dev libbonobo-activation-dev libbonobo2-dev libbonoboui2-dev libbz2-dev libcroco3 libcroco3-dev libgconf2-dev libgcrypt11-dev libglade2-dev libgnome-keyring-dev libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomevfs2-dev libgnutls11-dev libgpg-error-dev libgsf-1 libgsf-1-dev libgtk2.0-dev libidl-dev libopencdk8-dev liborbit2-dev libpango1.0-dev librsvg2-2 librsvg2-common librsvg2-dev libtasn1-2-dev libxft-dev libxml2-dev Then you can paste the list of packages installed with the following command, and hit ^D when done: ./paste.pl | ./package-tool --cfg config.xml --include --dist sid > newconfig.xml So your configuration includes the new packages It's very useful to avoid redownloading the same files again when updating the mirror