Open debarshiray opened 6 years ago
Yeah, entirely possible our logic for determining whether something is part of the "base image" is getting confused about provides.
I'm not sure if I'm running into the same issue or not. I'm pretty confused.
I'm using Fedora Silverblue 31, and am trying to override the base package pulseaudio-module-bluetooth
with pulseaudio-module-bluetooth-freeworld
from RPM Fusion. This package adds support for a variety of Bluetooth audio codecs such as AptX, which is sadly missing out of the box with Fedora.
The instructions from that fork’s GitHub page say to run the following command:
rpm-ostree override remove pulseaudio-module-bluetooth -–install pulseaudio-module-bluetooth-freeworld
This just fails with the error “Unknown option --install”.
I then tried this instead:
rpm-ostree override replace pulseaudio-module-bluetooth-freeworld
And that fails with the error “Non-local replacement overrides not implemented yet”.
Finally, I tried this:
wget https://download1.rpmfusion.org/free/fedora/releases/31/Everything/x86_64/os/Packages/p/pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64.rpm
rpm-ostree override replace ./pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64.rpm
This time it actually downloaded and supposedly installed the package. But after rebooting, I’m not sure it actually worked. rpm-ostree status
doesn’t list any overridden packages, and rpm -q pulseaudio-module-bluetooth-freeworld
says it’s not installed. Nothing seems any different with my audio, and the GitHub page’s instructions to check codec don’t work as expected, suggesting that I’m still on the stock package.
I tried removing the original package:
rpm-ostree override remove pulseaudio-module-bluetooth
That fails with a bunch of errors saying that the package is needed by various other things, such as gnome-tweaks
and gnome-bluetooth
, saying that "none of the providers can be installed".
I feel like this might be a similar issue to the OP, as I'm dealing with a package that has a different install name, it appears to install with override replace
(at least when using a local .rpm file), but then rpm-ostree status
doesn't list it. It sounds the same to me, but maybe I'm wrong.
Would appreciate any help.
The instructions from that fork’s GitHub page say to run the following command:
rpm-ostree override remove pulseaudio-module-bluetooth -–install pulseaudio-module-bluetooth-freeworld
This just fails with the error “Unknown option --install”.
Hmm, that's weird. The syntax looks right to me. Can you provide the exact shell paste of the command and its output?
Re. the issue itself, this is something I've thought about more recently since it's become much more popular now to replace the kernel with alternative versions (e.g. kernel-rt
or kernel-debug
) and right now, the way to do this is via rpm-ostree override remove kernel kernel-core ... --install <alternate kernel pkg> --install <alternate kernel-core pkg> ...
.
I mean, rpm-ostree is just being very strict about what's happening there. We're not just changing the EVR of a package, we're entirely replacing it with a different package.
Anyway, once you enter override replace
-land, you've already expressed your intent to wanting to change the base layer, so automatically resolving that to multiple remove
s and install
s I think is reasonable. Though I don't think we want to hide what actually happened from rpm-ostree status
.
The current Fedora 28 Silverblue image has
containernetworking-cni-0.7.1-1.fc28
, which Providescontainernetworking-plugins
:The package has since been renamed to
containernetworking-plugins
, and since I need a newer version for more recentpodman
builds, I want to temporarily overridecontainernetworking-cni
withcontainernetworking-plugins-0.7.3-1.fc28
until a new image is available. However, I am unable to do that. Therpm-ostree override replace
command (see below) seems to succeed, but the override isn't reflected inrpm-ostree status
, and after rebooting into the new image I don't see the new RPM.Host system details
rpm-ostree status
right after attempting the above override: