https://blue-build.org/ logo
Remove 1password dnf package which was installed w...
# questions
h
Hi all, when i started i incorrectly installed 1Password directly via DNF as described here: https://support.1password.com/install-linux/#fedora-or-red-hat-enterprise-linux No i have the problem that i'm not able to remove it again. I'm getting:
Copy code
Error: this bootc system is configured to be read-only. For more information, run `bootc --help`.
I tried to remove the package using
ostree admin unlock --hotfix
and that worked. But after upgrading to a new deployment 1Password is back. My goal is to remove it and than add it again with the bling module. Any ideas how to fix this? Sorry i'm new to immutable systems and bluebuild.
a
message has been deleted
x
i already answered on the other thread but i'll answer again here for future notice
everything installed into your built image with bluebuild is 'immutable' on a running system
you can't permanently remove a system package on a running system
you can do it through a custom image with the remove option in the
dnf
module (or other applicable package manager)
but if you installed something by configuring it to be installed in your custom image, you can just remove it by removing the package from the install list in your recipe
this is actually a very good and desireable property of a bootc-based system: system packages from previous images or image versions do not stay around after an update or when switching images
the home directory does, of course, but nothing baked into the system does
you could remove your whole recipe.yml right now and rewrite it fully such that an entirely different image is built by it, and as long as the image's name and signing key remained the same your computer would happily update and next time boot into an entirely different system
no awkward in-betweens
h
OK i understand that. But i tried to remove 1password with the dnf module through my recipe.yaml, that didn't work. I started with the official fedora sway atomic where I also installed 1password with dnf, than rebased to my own bluebuild, don't know if that could cause the problem.
x
if you have a line in your recipe that tries to install 1password and another one that removes it, it might bug out
can you confirm whether it is you who installed 1password in the first place, or if it is something baked into your base image?
h
I installed 1password with dnf by myself., i don't have a line on my recipe. Here is a link to my recipe.yaml: https://github.com/Hema2301/hema-os/blob/main/recipes/recipe.yml And here is part of the build log:
Copy code
[19:57:26 g.i/h/hema-os:latest] => #40 28.60 Removing packages:
[19:57:26 g.i/h/hema-os:latest] => #40 28.60 - firefox
[19:57:26 g.i/h/hema-os:latest] => #40 28.60 - 1password
[19:57:26 g.i/h/hema-os:latest] => #40 28.60 - firefox-langpacks
[19:57:26 g.i/h/hema-os:latest] => #40 28.61 - foot
[19:57:26 g.i/h/hema-os:latest] => #40 28.61 - just
[19:57:26 g.i/h/hema-os:latest] => #40 28.61 - dunst
[19:57:26 g.i/h/hema-os:latest] => #40 28.85 No packages to remove for argument: 1password
I also tried to remove a package (zathura) which was prevouisly on my recipe, you can see in the recipe.yaml that i commented this package out. But after `rpm-ostree upgrade' the package (zathura) is still installed. Regardinh your explanation, the package should be removed, right?
x
the "no packages to remove" means that 1password is not installed
if you remove the line to install a package from your recipe, that package should be gone the next time you update, unless it's installed somewhere else in the build chain
the image is built from scratch every time, there is no "memory" of what packages were installed previously, so you can't remove them like that
the module is called "pseudo-declarative" in the docs because on the basic level you are able to just declare a list of packages you want and edit it as you please similarly to if you were using nix, eventhough under the hood it's just
dnf5
h
yes i know thats the strange thing. 1password is definetly installed. You can see it here:
Copy code
λ sudo dnf remove 1password
[sudo] Passwort für max: 
Paket                                                    Architektur       Version                                                  Paketquelle                      Größe
Wird entfernt:
 1password                                               x86_64            8.12.0-1                                                 <unbekannt>                  501.5 MiB

Transaktionszusammenfasung:
 Entferne:           1 Paket

Nach dieser Operation werden 502 MiB frei (installiere 0 B, entferne 502 MiB).
Error: this bootc system is configured to be read-only. For more information, run `bootc --help`.
x
try
rpm -q 1password
h
rpm -q 1password 1password-8.12.0-1.x86_64
x
hmm
can you show
bootc status
h
sudo bootc status ● Booted ostree Commit: 8b8d7b2f0b4787ff769fb243fb91bcf88d734df7978072804b5da0c57d076308 Rollback ostree Commit: fc3fba0ce0c56fb21f43bb5c682cc6f3d3d475b9068d7416cef5f9b00a3ddc14
x
i remembered that this would show more info, maybe it's
rpm-ostree status
actually
i'm trying to figure out if you are on an image version where 1p is not installed in your recipe
to rule out the simple explanation
h
Deployments: ● ostree-image-signed:docker://ghcr.io/hema2301/hema-os:latest Digest: sha256:a1af49dedb03564ba007b003c2a6875a20264a45cbd3188918df478d4f45b2b1 Version: 43.20260209.0 (2026-02-09T19:58:12Z) LocalPackages: 1password-8.12.0-1.x86_64 ostree-image-signed:docker://ghcr.io/hema2301/hema-os:latest Digest: sha256:d6d1113ac6595820c66c365df9830246ec761d9c7e48515e2c558d10b8977c6c Version: 43.20260209.0 (2026-02-09T15:11:58Z) LocalPackages: 1password-8.12.0-1.x86_64
x
oh, here we go
LocalPackages: 1password-...
this means that you have installed 1password on your local system as a so-called layer on top of your image
the way these work is that every time the base image is updated, the local 1password package is updated and added onto it as well
you may
rpm-ostree uninstall
it or
rpm-ostree reset
i think to get rid of all layers
you are on the latest version of your image, and that version does not contain 1password, but it has been layered onto your local install
h
ok trying that now.
Tried that before and its not working: rpm-ostree uninstall 1password Checking out tree 9f32eb1... done Resolving dependencies... done error: No packages in transaction
The other strange thing is, i uncommented zathura package on my current recipe, so it should be not installed on this deployment, but it is stilll installed: rpm -q zathura zathura-0.5.14-1.fc43.x86_64
Ok it seems, rpm-ostree reset works:
Copy code
Staging deployment... done
Pruned images: 0 (layers: 10)
Freed: 267,2 MB (pkgcache branches: 0)
Removed:
  1password-8.12.0-1.x86_64
Changes queued for next boot. Run "systemctl reboot" to start a reboot
I`m rebooting for sec.
Ok this worked now, thanks a lot man!
Do you also have an idea why the zathura package is still installed?
x
no idea
it could be a weak dependency of something you are installing i guess
but i don't have any other idea except "if it is installed something installs it somewhere in the chain"
h
Hm ok, anyway thanks a lot! Will try the sponsor button tomorrow 😊
b
Maybe try the
exclude
feature of the dnf module
In my case, I was unable to remove waybar, because it was a weak dependency of another package I installed
7 Views