My CoreOS box has a handful of layered packages. When I updated recently using rpm-ostree upgrade, I saw some new packages had been installed, none of which I have specifically asked for:
I thought maybe these were new dependencies of some package I have already layered, but when I do a rpm -q --requires <package> for all of my layered packages, I do not see nodejs in any of them, nor any of the entries in rpm -q --provides nodejs.
This is hopefully a simple question: how do I determine which of my layered packages is responsible for pulling in these nodejs packages?
It turns out that by installing neovim pulls nodejs as a dependency, even though the query options of rpm, dnf, and a few other tools don’t recognize it as such.
neovim recommends tree-sitter-cli which recommends nodejs.
I don’t think the packagers did anything wrong as the recommends vs suggests seem justified, but it’s still unfortunate. I’ll look into it.
I don’t know how ostree works so try to translate it, but on workstation you can safely remove nodejs dnf remove nodejs, or install neovim using dnf install neovim --setopt=install_weak_deps=False
The main purpose of FCOS is to provide a container host for running containerized workloads, and this is where it really shines. This is why you should generally prefer using podman containers over layering software. Necessary exceptions could be kernel modules, drivers, VPNs, etc., because they are harder to containerize.
Unfortunately,
sudo rpm-ostree uninstall --dry-run neovim
does not return the expected[1] output. A possible workaround that comes to mind is: