Re: F36 Change: Relocate RPM database to /usr (System-Wide Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Zbigniew Jędrzejewski-Szmek wrote on Thu, Dec 30, 2021 at 08:29:54AM +0000:
> $ sudo strace -efile dnf list
> ...
> openat(AT_FDCWD, "/var/lib/rpm/rpmdb.sqlite-wal", O_RDWR|O_CREAT|O_NOFOLLOW|O_CLOEXEC, 0644) = 4
> openat(AT_FDCWD, "/var/lib/rpm/rpmdb.sqlite-shm", O_RDWR|O_CREAT|O_NOFOLLOW|O_CLOEXEC, 0644) = 5
> ...
> 
> What happens if /var/lib is read-only? Changing (fixing?) this would
> be a pre-requisite to this proposal, we don't want 'dnf list' to break.

That's easy enough to test.
Apparently, of the files already exist the open calls work without
problem.
If the files don't (e.g. cleared by running 'sqlite3 rpmdb.sqlite
vacuum'), then sqlite apparently tries to create them and fails
horribly -- but so does rpm -qa:

# rpm -qa
error: sqlite failure: CREATE TABLE IF NOT EXISTS 'Packages' (hnum INTEGER PRIMARY KEY AUTOINCREMENT,blob BLOB NOT NULL): unable to open database file
error: cannot open Packages index using sqlite - No such file or directory (2)
error: cannot open Packages database in /var/lib/rpm

or for that matter plain sqlite3:
# sqlite3 rpmdb.sqlite 'select * from Packages;'
Error: unable to open database file

So for a read-only filesystem, if the db has wal enabled, the files have
to exist.
(it's possible to disable WAL mode by running the sqlite 'PRAGMA
journal_mode=DELETE;'  command when the partition is writable
beforehand, but I didn't see how to alter the mode while it is readonly)


Anyway, I don't think vacuum ever runs automatically so the files should
always be present and it probably should just work™.


FWIW I've been running with my rpmdb in /usr (through a bind mount) for
a few years precisely to keep the rpmdb in sync with the rest of /usr
for snapshots -- it's pretty much necessary to run rpm -q on old
snapshots and figure which version of what was where easily.
Unless btrfs somehow becomes able to tie multiple subvolume snapshots
together I think it's a good change.

-- 
Dominique
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux