[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[debian-knoppix] Updating to the Latest Official release via dialup.

I am stuck on one step to making this process work. How can I inject the
accurate package listings of the newer cd into the chroot of the older cd?

One problem with living in a rural area is dialup is our only available
connectivity, another is the snail mail is slow.  I think the dialup
download would be faster than ordering a cd and I expect it to take 3-7
days for me to obtain the latest release.

Downloading only the packages and files that have changed and remastering
could be done in a couple of hours.

I have access to a couple of servers which have DSL access, I could
uncompress the /KNOPPIX/KNOPPIX files, chroot and create the list of
packages, but I don't know how to script the right version of the package.

I wrote a little bash script to aid in upgrading to the latest release of
the official Knoppix, but it has a few issues and is likely to have some
packages out of sync.  The script uses "dpkg --get-selections" to obtain a
list of current packages and "apt-get --print-uris -d -y dselect-upgrade"
to get a list of where to wget the packages and what to remove.

dpkg --get-selections does not contain the version of the package used, so
if Knoppix used a package from unstable, this listing would get the wrong
package.  For example the remastered CD Kathy and I are working on
contains celerium. The "apt pinning" to testing caused a dependency
conflict which was easily resolved with apt-get install -t unstable

Here is my outline of how the process could work:

1. Download the new Knoppix release to one of the DSL machines

2. Expand the contents of the CD: essentially the same process used in

3. In a chroot environment of the new CD, Get an accurate list of
   packages.  "dpkg-query -W --showformat='${Version} ${Package}\n'" is
   one way.  Also make a tarball of /etc/ /KNOPPIX/etc, this should keep
   all the configuration changes up to date.

4. Make another tarball of everything on the CD except the big compressed
   file /cdrom/KNOPPIX/KNOPPIX.

5. chroot into the old CD environment, ie same steps as remastering.

6. Inject the package listing, something similar to "cat <selections list>
   | dpkg --set-selections" but it has to contain the correct package
   version.  How do I do this?

7. Run "apt-get --print-uris -d -y dselect-upgrade" through some awk and
   sed to build a scripts for dialup users.  Scripts contain wget -c uris
   and a list of packages to delete.

8. Publish the scripts and tarballs mentioned above to a website for
   others to use, or better yet put the stuff in a debian package.

9. Dialup user uses the results to remaster an official Knoppix CD!

Some additional comments:

This could save a significant amount of bandwidth on the various mirrors
hosting Knoppix CDs.

A dpkg-changes perl script/debian package at
http://www.steve.org.uk/Software/dpkg-changes/ also creates a list of
added and deleted packages.  I discovered it after I wrote my script, and
it appears to have the same short comings as my dpkg --get-selections
method, no version numbering.  However it might be a better to use perl
instead of the mix of bash, awk and sed that my script uses.

debian-knoppix mailing list

Reply to: