Relocate RPM database to /usr
Summary
Currently, the RPM databases is located in /var
. Let's move it to /usr
. The move is already under way in rpm-ostree-based installations, and in (open)SUSE.
Owner
- Name: Chris Murphy
- Email: chrismurphy@fedoraproject.org
- Name: Michel Alexandre Salim
- Email: salimma@fedoraproject.org
Current status
- Targeted release: Fedora Linux 36
- Last updated: 2021-12-28
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Current location
/var/lib/rpm
New location
/usr/lib/sysimage/rpm
The proposal is to apply the new location only to new clean installs only. It will not apply to upgrades.
/var/lib/rpm[/code] will be a symlink pointing to
/usr/lib/sysimage/rpm
Feedback
There will be no change to DNF as part of this change proposal. DNF's history will remain in /var
until DNF 5. Discussion continues about the effect of a snapshot+rollback regime on DNF history. Relocate DNF history to /usr.
Upstream RPM accept the change, but institutionally don't like the loss or weakening of a very well known location for the database, and anticipate complaints.
Benefit to Fedora
- The RPM and DNF databases describe the state of (primarily)
/usr
. Storing these databases in /usr
will more easily facilitate OS rollback, without affecting /var
.
- Helps align Fedora variants with each other
- rpm-ostree based systems (including CoreOS, IoT, Silverblue, Kinoite) already use
/usr/lib/sysimage
for rpmdb.
- Consistency with another RPM-based distro, (open)SUSE has made this change
Scope
- Proposal owners:
- changes in rpm and dnf-data packages
- create the new path instead of old
- create symlinks for the old path to new path
- Other developers:
- changes in SElinux policy
- Release engineering: #Releng issue 10441
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with Objectives:
Upgrade/compatibility impact
Change will be applied on upgrades to Fedora 36.
How To Test
- Clean install or upgrade an existing Fedora system
- Note the changed database paths (new location) and symlinks in the old location
- Check that
rpm
and dnf
commands work as expected, e.g.
dnf history
rpm -qa
User Experience
Users will notice:
- symlinks in the old locations for the databases, pointing to the new locations;
- paths existing in the new locations.
Otherwise, the change should be invisible to users.
Dependencies
rpm-ostree
probably should make /usr/share/rpm
a symlink to /usr/lib/sysimage/rpm
, rather than the reverse as it is currently.
PackageKit
might use inotify on /var/lib/rpm
need to check if it does and whether it should be changed or add the additional path
Contingency Plan
- Contingency mechanism: Revert the change, try again the next Fedora release.
- Contingency deadline: Beta freeze
- Blocks release? Yes
Documentation
Release Notes