Fetching really new Fedora packages with Bodhi
Normal Fedora updates that have been fully released are available
through the regular
updates repository, which is (or should be)
already configured into
dnf on your Fedora system. More recent
(and less well tested) updates are available through the
repository, which you can selectively enable in order to see if
what you're looking for is there. Right now I'm interested in Rust
1.28, because it's now required to build the latest Firefox from
# dnf --enablerepo=updates-testing check-update 'rust*' Last metadata expiration check: 0:00:56 ago on Fri 10 Aug 2018 02:12:32 PM EDT. #
However sometimes, as in this case and past ones, any update that actually exists is too new to even have made it into the updates-testing DNF repo. Fedora does their packaging stuff through Fedora Bodhi (see also), and as part of this packages can be built and available in Bodhi even before they're pushed to updates-testing, so if you want the very freshest bits you want to check in Bodhi.
There are two ways to check Bodhi; through the command line using
bodhi client (which comes from the bodhi-client package), or
through the website. Perhaps
I should use the client all the time, but I tend to reach for the
website as my first check. The URL for a specific package on the
website is of the form:
For example, https://bodhi.fedoraproject.org/updates/?packages=rust is the URL for Rust (and there's a RSS feed if you care a lot about a particular package). For casual use, it's probably easier to just search from Bodhi's main page.
Through the command line, checking for and downloading an update looks like this:
; bodhi updates query --packages rust --releases f28 --status pending ============================= [...] rust-1.28.0-2.fc28 ============================= [...] Update ID: FEDORA-2018-42024244f2 [...] Notes: New versions of Rust and related tools -- see the release notes : for [1.28](https://blog.rust-lang.org/2018/08/02/Rust-1.28.html). Submitter: jistone Submitted: 2018-08-10 14:35:56 [...]
We insist on the
pending status because that cuts the listing
down and normally gives us only one package, where we get to see
detailed information about it; I believe that there's normally
only one package in pending status for a particular Fedora release.
If there's multiple ones, you get a less helpful summary listing
that will give you only the full package name instead of the update
ID. If you can't get the update ID through
bodhi, you can always
get it through the website by clicking on the link to the
specific package version on the package's page.
To fetch all of the binary RPMs for an update:
; cd /tmp/scratch ; bodhi updates download --updateid FEDORA-2018-42024244f2 [...]
; cd /tmp/scratch ; bodhi updates download --builds rust-1.28.0-2.fc28 [...]
Both versions of the
bodhi command download things to the current
directory, which is why I change to a scratch directory first. Then
you can do '
dnf update /tmp/scratch/*.rpm'. If the resulting
packages work and you feel like it, you can leave feedback on the
Bodhi page for the package, which may help get it released into the
updates-testing repo and then eventually the updates repo.
(In theory you can leave feedback through the
bodhi command too,
but it requires more setup and I think has somewhat less options
than the website.)
As far as I've seen, installing RPMs this way will cause things to
remember that you installed them by hand, even when they later
become available through the
updates-testing or the
repo. This is probably not important to you.
(I decided I wanted an actual entry on this process that I can find easily later, instead of having to hunt around for my postscript in this entry the next time I need it.)