What replaces /etc/services in openSUSE, and how

etcfetchmailopensusepostfixservices

I am running openSUSE Linux, the Tumbleweed version. I discovered that it does
not use an /etc/services file, though I do not know what is replacing it, or
how it is done, and I do not have much success searching the web.

Actually, what happened to me is that my mail system stopped working correctly
after a major system update, both in-mail and out-mail. After much testing and
debugging with a more expert user (of other Linux distros), we
discovered that the /etc/services file was missing.

Thinking it had been accidentally destroyed, we created a small one to provide
at least for the ports used for email. And it did solve my mail problems.

To do things cleanly, I asked another openSUSE Tumbleweed user for his copy of
the file as provided in the distribution. But he did not find it in his own
system, which has no mail problem. So, it is not necessary.

Apparently, I had solved my problem by accident.

Could someone at least confirm that /etc/services is no longer normally used
in this openSUSE Linux. But I would like an explanation of how things are now
done, and if possible of why my problem was solved by adding /etc/services,
and whether I could solve it without /etc/services.

(reported to the best of my understanding and memory of events)

Best Answer

Since Jetchisel will not turn his comment into an answer, I am doing it here, with more details.

Warning: I am not an expert on these issues and this is only to make available whatever understanding I gathered, painfully, as I did not have the right keywords for searching.

As commented by Jetchisel, it seems that in some distros configuration files usually found in folder /etc is being reorganized into two folders /etc and /usr/etc. As I understand it, the purpose is to separate configurations that are being maintained at distro level and configurations maintained by the superuser, so as to minimize conflicts when an installed system is updated.

With a single folder, such conflict are harder to resolve automatically, and updating software may leave the system with two versions of the configuration file foo.conf, which can be the old version used before update together with foo.conf.rpmnew proposed by the update, or alternatively the old version is renamed foo.conf.rpmsave and the name foo.conf is used for the configuration file proposed by the update. The idea is that the superuser with merge the two files in the most appropriate way. See rpmnew and rpmsave on yout favorite search engine.

However, one still need to arbitrate between configuration files, and this is done by the configuration file /etc/nsswitch.conf. My problem was that The distro was updated so that /etc/services became /usr/etc/services. And the change was reflected in /etc/nsswitch.conf.rpmnew, but it was not active, as long as I did not merge it with my old version /etc/nsswitch.conf (but I did not know).

Apparently, if you touch configuration files, it is always wise to check for the appearance of suffixes like .rpmsave or .rpmnew after an update. I am not sure which are the concerned distros. I am using openSUSE Tumbleweed, and otherwise rather happy with it.

References I started from:

Related Question