What happened to golang-github-prometheus-node-exporter? (in March 2025?)

Oh no…

I noticed my coreos system is heavily oudated and I also see why.

But the whole story: I see zicati, which is enabled, failed to update the system:

AutomaticUpdatesDriver: Zincati (zincati.service)
DriverState: active; trying to stage 41.20250331.3.0 (failed attempts: 8)
Deployments:

Now I do a manual rpm-ostree run and also see why:

sudo rpm-ostree upgrade --bypass-driver
⠐ Receiving objects; 99% (13166/13294) 16.1 MB/s 787.2 MB                                                                                                                                                           2495 metadata, 10852 content objects fetched; 784416 KiB transferred in 52 seconds; 1.5 GB content written
Receiving objects; 99% (13166/13294) 16.1 MB/s 787.2 MB… done
Checking out tree 92cbd38… done
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora updates-archive
Updating metadata for ‘fedora-cisco-openh264’… done
Updating metadata for ‘updates’… done
Updating metadata for ‘fedora’… done
Updating metadata for ‘updates-archive’… done
Importing rpm-md… done
rpm-md repo ‘fedora-cisco-openh264’; generated: 2025-03-19T16:53:39Z solvables: 6
rpm-md repo ‘updates’; generated: 2025-09-02T01:43:46Z solvables: 22815
rpm-md repo ‘fedora’; generated: 2025-04-09T11:06:59Z solvables: 76879
rpm-md repo ‘updates-archive’; generated: 2025-09-02T02:09:27Z solvables: 38798
error: Packages not found: golang-github-prometheus-node-exporter

So, golang-github-prometheus-node-exporter does not exist anymore in Fedora’s repos?
Looking for it the package does not seem to exist anymore for the Fedora variants (like Fedora 42 or Fedora 41), only for Fedora EPEL 9 and Fedora EPEL 8.

Searching for potential package renames or so also did not turn up some useful results. However, I’ve found out the devel aka development package (golang-github-prometheus-node-exporter-devel) does exist for Fedora 41/42, which makes this much more confusing. I don’t want to develop it, I just want to run it and if you use Prometheus, that should be a very basic package you very certainly need. (And IIRC you cannot easily run it in Docker, because obviously it needs host access and many permissions for that so I saw no point in running it with Podman/Docker.)

I also looked at https://pkgs.org/download/golang-github-prometheus-node-exporter, which also yields no alternatives though.

Workarounds / Discussion

I know to replace it, I could follow the official Prometheus documentation and just download some random tarball in some random directory and start it, but I think that’s really not best practice. That’s why I choose the rpm package in the first place, after all.

Followup issues

Due to the outdated images, I’ve basically experienced the issue Unsupported lua script when running rpm-ostree upgrade when trying to upgrade when reinstalling golang-github-prometheus-node-exporter at the same time:

sudo rpm-ostree upgrade --bypass-driver --uninstall golang-github-prometheus-node-exporter
2 metadata, 0 content objects fetched; 788 B transferred in 1 seconds; 0 bytes content written
Checking out tree 92cbd38... done
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora updates-archive
Importing rpm-md... done
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2025-03-19T16:53:39Z solvables: 6
rpm-md repo 'updates' (cached); generated: 2025-09-02T01:43:46Z solvables: 22815
rpm-md repo 'fedora' (cached); generated: 2025-04-09T11:06:59Z solvables: 76879
rpm-md repo 'updates-archive' (cached); generated: 2025-09-02T02:09:27Z solvables: 38798
Resolving dependencies... done
Checking out packages... done
Running pre scripts... done
Running post scripts... done
Running posttrans scripts... done
error: Executing %transfiletriggerin for filesystem: Package 'filesystem' has (currently) unsupported <lua> script in '%transfiletriggerin'

I’ll follow the advise there, uninstall it and let Zicani do it’s work.

Zicani was a “install and forget” update service, I thought, but yeah, I see when it fails like this and you get no notification it obviously does not help. :sweat_smile:

You apparently did not install that package (based on your description) from fedora but probably from epel.
If you remove that package first as a separate command then the upgrade should work.
Note that there are several related packages in the fedora repos that can be installed (layered) on coreos.

$ sudo dnf list golang-github-prometheu* --releasever=42 --disablerepo=updates-archive
Updating and loading repositories:
Repositories loaded.
Available packages
golang-github-prometheus.x86_64                        2.55.1-1.fc42 updates
golang-github-prometheus-alertmanager.x86_64           0.28.1-1.fc42 updates
golang-github-prometheus-alertmanager-devel.noarch     0.27.0-2.fc41 fedora
golang-github-prometheus-client-devel.noarch           1.19.0-3.fc41 fedora
golang-github-prometheus-client-model-devel.noarch     0.6.1-3.fc42  fedora
golang-github-prometheus-common-devel.noarch           0.61.0-2.fc42 fedora
golang-github-prometheus-community-runit-devel.noarch  0.1.0-5.fc42  fedora
golang-github-prometheus-devel.noarch                  2.32.1-9.fc38 fedora
golang-github-prometheus-exporter-toolkit-devel.noarch 0.13.2-2.fc42 fedora
golang-github-prometheus-node-exporter-devel.noarch    1.8.2-2.fc41  fedora
golang-github-prometheus-procfs-devel.noarch           0.15.1-2.fc42 fedora
golang-github-prometheus-prom2json.x86_64              1.4.2-1.fc42  updates
golang-github-prometheus-prom2json-devel.noarch        1.3.3-6.fc42  fedora

I do not know how they relate to the function of the package of concern but most seem to be devel packages.

Hmm your output also shows only the devel package, so the non-dev package does not seem to be available. And yes it needs to be the node_exporter as that is the official Prometheus package for monitoring your hardware/host server itself.
IIRC, I installed it from Fedora, just layering via rpm-ostree install, but that was quite some time ago.

Also note that several of those are in the repo for f42, but some go as far back as f38 for packaging.

I don’t use one of the atomic systems and am not familiar with how to do so on coreos. But on an rpm based system it is very easy to find out where a package was installed from.
On workstation I would use rpm -qa | grep golang-github-prometheus to find out what related packages were installed and where they came from. I suspect there are similar tools for use with rpm-ostree but do not know.

On image based Fedora variants, the query, search, etc. options for the rpm and dnf commands work flawlessly. The “only” thing you can’t use these commands for (at least right now) is installing and uninstalling software on an already deployed system. They are included in image based systems because they are used to install or uninstall software during the container build.

1 Like