teverettak
05-10-2003, 01:19 AM
I've been developing my own custom KNOPPIX-based images because I had requirements that weren't met by any of the existing images (hyper-recent kernel support, smb support, man pages 'cause I can't remember anything, etc.) and didn't have requirements that some of the others had (I don't need X, in particular).
It occurred to me that at some point in the future, I might need to take an even more recent KNOPPIX image and customize it again, and that life would be far easier if I documented the whole process. Or, rather, scripted it. So what I'm _planning_ to do is this:
Write Perl scripts that, with a modicum of user intervention, allow a user to take a knoppix_base directory (that has the contents of KNOPPIX/KNOPPIX in it) and a knoppix_custom directory and generate a "transform" file - lists of packages to remove, packages to add, files to remove (for things not covered by packages), files to add or modify, etc.
Then I plan to write more scripts that, with somewhat more user intervention, will make it possible to replay these transforms against a newer KNOPPIX image. Of course, since the roster of packages in KNOPPIX will have changed, along with dependencies and all of that, the replay system will be designed to anticipate all of the potential problems and to alert the user to them so that the transforms can be properly modified to deal with the update KNOPPIX stuff.
Before I do all this, though, I thought I'd ask if anyone has done this. It seems stupid to reinvent the wheel. Also, if I do all of this, do you think anyone would ever use them (assuming I provided some sort of minimal documentation, at least as detailed as, if not more than, the KnoppixRemasteringHowto)? There's nothing I hate worse than spending a whole bunch of time documenting something and trying to make it friendlier for others than to discover that I'm the only person in the world with my needs and that I've wasted my time trying to help people who don't need or want helping (see half of my Perl modules - some of them are getting used, though, and every time someone tells me).
Also, any hints on how I should go about this? I have a pretty good general idea, but if anyone knows of tricks or traps in talking to dpkg from Perl, please let me know!
--Toby Everett
It occurred to me that at some point in the future, I might need to take an even more recent KNOPPIX image and customize it again, and that life would be far easier if I documented the whole process. Or, rather, scripted it. So what I'm _planning_ to do is this:
Write Perl scripts that, with a modicum of user intervention, allow a user to take a knoppix_base directory (that has the contents of KNOPPIX/KNOPPIX in it) and a knoppix_custom directory and generate a "transform" file - lists of packages to remove, packages to add, files to remove (for things not covered by packages), files to add or modify, etc.
Then I plan to write more scripts that, with somewhat more user intervention, will make it possible to replay these transforms against a newer KNOPPIX image. Of course, since the roster of packages in KNOPPIX will have changed, along with dependencies and all of that, the replay system will be designed to anticipate all of the potential problems and to alert the user to them so that the transforms can be properly modified to deal with the update KNOPPIX stuff.
Before I do all this, though, I thought I'd ask if anyone has done this. It seems stupid to reinvent the wheel. Also, if I do all of this, do you think anyone would ever use them (assuming I provided some sort of minimal documentation, at least as detailed as, if not more than, the KnoppixRemasteringHowto)? There's nothing I hate worse than spending a whole bunch of time documenting something and trying to make it friendlier for others than to discover that I'm the only person in the world with my needs and that I've wasted my time trying to help people who don't need or want helping (see half of my Perl modules - some of them are getting used, though, and every time someone tells me).
Also, any hints on how I should go about this? I have a pretty good general idea, but if anyone knows of tricks or traps in talking to dpkg from Perl, please let me know!
--Toby Everett