Martin-Éric Racine wrote:
> la 13. heinäk. 2024 klo 2.02 Daniel Gröber (d...@darkboxed.org) kirjoitti:
> > On Thu, Jul 11, 2024 at 12:57:52PM +0300, Martin-Éric Racine wrote:
> > What I'd like to know is why is removing all traces of ifupdown* from a
> > minimal Debian install important? Clearly Desktop/Cloud image maintainers
> > think a different tool is more well suited for their users. That's fine.
> >
> > The question is: What problems does ifupdown* cause that make its removal
> > from the base system worthwhile?
>
> I haven't seen any answer to this one either.

Leaving aside the questions of "what use cases does ifupdown not handle"
(which it sounds like folks are generally acknowledging the existence
of), the question of "why is it important to remove ifupdown and its
configuration from the system" has a fairly simple answer: because
different network tools trying to poke at the same network devices, *or*
network tools working around each other to carefully *not* poke at the
same network devices, causes problems and conflicts and user surprises,
and should be treated as an unusual non-default configuration rather
than a common one. It is possible to carefully configure a system such
that ifupdown handles one set of interfaces while NetworkManager or
systemd-networkd handles a disjoint set, but there's little to no
benefit to doing so for most users: once you're using one of those,
*most* users will want to let that tool handle a *complete* picture of
the attached network devices in order to set up the configuration the
user wants.

NetworkManager has a dedicated plugin with a pile of logic to attempt to
detect if an interface lives in /etc/network/interfaces and treat it as
"unmanaged". In practice, however, *most* desktop users running
NetworkManager will get a suboptimal experience if they have any
interfaces configured in /e/n/i, compared to the experience they get if
NetworkManager manages all interfaces. This is why, for instance,
debian-installer already has logic to check if the user is installing a
desktop system, and in that case, copy the network configuration over to
NetworkManager if needed and remove it from /etc/network/interfaces.

Given that, I would suggest in general that it makes sense for the
installer to treat network management tools as mutually exclusive rather
than keeping more than one tool installed: e.g. if installing the
desktop task install and configure NetworkManager, else install and
configure something else. That doesn't *stop* people from installing
whatever they want, it just makes the common case have just one tool and
one path for the user to deal with.

If a user with an unusual use case wants to install more than one
network management tool and configure them to carefully manage disjoint
sets of interfaces, they can absolutely do that; I'm not suggesting that
the tools should have Conflicts with each other. But if there were some
kind of "Recommends-Conflict" for "packages that would *not* be found
together except in unusual installations", it'd make sense for network
management tools to Recommends-Conflict each other. And in the meantime,
it makes sense for the installer to treat them as effectively mutually
exclusive so that the user's installed system ends up with at most one
of them.

- Josh Triplett

Reply via email to