[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?
Problem:
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.
Solution:
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
celerium.
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
remastering.
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.
Chaz
_______________________________________________
debian-knoppix mailing list
debian-knoppix@linuxtag.org
http://mailman.linuxtag.org/mailman/listinfo/debian-knoppix
Reply to: