Skip to content

Improper symlinking of /usr/etc/services #2

@mtalexan

Description

@mtalexan

In ostree distro, which includes MicroOS, the 3-way merge of /etc during upgrade, downgrade, install, or uninstall happens at ostree deployment switch rather than during the RPM install/uninstall actions like in a non-ostree distro. The RPMs now operate on /usr/etc and the ostree deployment manager handles doing the 3-way merge between the old /usr/etc, the new /usr/etc, and the new /etc.

Effectively, /usr/etc is a copy of what the RPMs want to have in /etc. In non-ostree distros, each RPM install and uninstall has to figure out whether the files in /etc that the RPM wants to modify are unchanged from a prior RPM version and therefore can be modified to match the new files (upgrade/downgrade, or add/remove for fresh install/uninstall), or modified by the user and therefore must be left alone. With ostree, RPM install/uninstall instead operates on files in a fresh copy of /usr/etc associated with the new ostree commit, and then the ostree itself does that 3-way compare between old, new, and current when first deploying the new ostree commit. It resolves this in a new copy of /etc that remains associated with the new ostree commit deployment (so if you rollback, you get the old /etc from before the new ostree commit started using it).

Functionally, that means you shouldn't be doing anything to /usr/etc (nor are you even be able to without being in a transactional-update shell since it's read only like the rest of the rootfs).

The valid options are to either create the blank /usr/etc/service file while in the transactional-update shell that you're also doing the guix setup and install in, or to manually create the /etc/services file after you reboot at the end of the guix install.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions