Goswin von Brederlow writes ("Re: mucking with dpkg control files in maintainer scripts?"): > Isn't it more accurate to say that the dpkg database is transaction > based? Changes are recorded on the fly in updates and then commited > attomically when the transaction is finished.
No. Updates written to /var/lib/dpkg/updates have been committed, in the sense that dpkg has committed to them. If dpkg decides to abort a package installation, it will not roll back by unwinding updates in /var/lib/dpkg/updates, but by writing new later updates of the package's state (which will be moving in roughly reverse to usual), as dpkg rewinds the installation attempt as applicable. This ensures that if dpkg dies, the whole system and status database are left in a consistent (if perhaps undesirable) state. > And dpkg honors the updates log when being called again while > maintainer scripts poking around in the status file will not. Those maintainer scripts are just buggy. It would be simple to make a dpkg-query option to dump the current status information to stdout but I'm not sure it's wise; it might encourage maintainer scripts to use this information. Perhaps we should make the invocation fail if run from a maint script :-). Ian. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]