On Sun, Dec 08, 2024 at 05:43:38PM +0300, Michael Tokarev via Postfix-users 
wrote:

> But a package might be installed from another system for example
> (bootstrapping) where host name is not required to be set, or during
> regular system setup when host name part hasn't been done yet, or in
> numerous other contexts, where the environment isn't set up (yet).

DO NOT attempt to build database tables, except just-in-time, shortly
before Postfix is ready to be started.  Otherwise, you cannot know the
desired value of various supporting parameters, that may depend on the
system environment:

    - default_database_type
    - alias_database
    - ...

In other words, run "newaliases" in the start script, not at package
build time.  If you're upgrading a "live" system, you may be able to in
some cases just rebuild the alias table (perhaps atomically) and leave
Postfix running, if the file format is somehow known stable, but a
restart is generally required, because that's hard to know for some
unknown database type, and whether packages you've installed affect
its on disk layout.

> Another example is postmulti -- for example, in order to just list all
> configured instances - like for a simple call to `postmulti -l`,
> network_interfaces parameter should already be valid:
> 
>  # postmulti -l
>  postmulti: fatal: config variable inet_interfaces: host not found: eth0

Again you should not attempt to query this information until the system
is in a runnable state.  Leave behind one-time hooks to run once the
system is ready, or if live enough do a Postfix restart that will run
the hooks.

> Can't at least some tools be made to not require complete valid configuration?

Not reliably.

-- 
    Viktor.
_______________________________________________
Postfix-users mailing list -- postfix-users@postfix.org
To unsubscribe send an email to postfix-users-le...@postfix.org

Reply via email to