> The installation process is a bit difficult. There are four scripts,
> {pre,post}{rm,inst} which are run before and after removal or installation
> of packages. The scripts are run with an argument, which defines if it is an
> upgrade, a new install, a removal or purge (removes configuration too) etc.What sorts of things are done be these preinstall scripts? Can they be bypassed? Is it safe to say that they won't be required if installing onto an empty filesystem where we can say a priori there is nothing conflicting or relevant already installed? > If the postinst fails, the package is left in a "half-installed" state. > Running "dpkg --pending --configure" after reboot will do what you want. > There are other options, for a fine adjustment of dpkg's behaviour. > You can also only unpack the files, which is sometimes dangerous (in > a running system, at least :) I'm glad to hear it is flexible in these ways. I think what we should recommend for people installing a hurd system from another system is the dpkg command that does this "half-install" without even trying to run the post-install scripts (so people don't get strange errors and core dumps and whatnot). Then we can hopefully eventually replace the hurd "SETUP" script one runs on first boot with just "dpkg --pending --configure", or something like that. We still need to figure out the pre-install script issue. But I think it would be a good feature for dpkg in general to be able to do pure cross-system installs in this way without attempting anything that needs to be run on the target system, so I would like to see a general resolution to this question rather than just getting by for the hurd.

