-
Notifications
You must be signed in to change notification settings - Fork 359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFE: container-native rpmdb format #2005
Comments
This is either related or duplicate of #1885. |
You're right, this overlaps a lot with previous threads, however, this one is much more about OCI/Docker containers than the previous ones. |
There are two approaches to fix this:
|
The ability to overlay a tree with extra packages is also part of the motivation for #1959. https://github.com/lnussel/toy/blob/master/dumpheaders.c stores rpm headers in separate files in contrast to rpmdb --exportdb. |
The way OCI/Docker containers work is a series of layers. In overlayfs, modified files are "copied up".
There are two issues:
In the common case of something like e.g.
The resulting tar layer from the
RUN
command has an entirely duplicated copy of the rpm database, just withcowsay
and its dependencies added.It's quite common for builds like this to actually form the base image for further images - and this duplication gets compounded.
A strawman proposal here is something like
/usr/lib/sysimage/rpmdb.d
with something simple like zstd-compressed JSON files storing data instead. The files could be named something simple like0000.json.zstd
and then later changes which add packages add just a new0001.json.zstd
file or so. Or, we could keep sqlite and union those; I don't have a really strong opinion. (Well, not really "union" literally but more "merge", since we should support removing or upgrading packages from prior layers)The text was updated successfully, but these errors were encountered: