If I miss an update will I still get everything next time?

Suppose I update Fedora on day 1. Another update is available on day 2, but I miss it. A third update is available on day 3 and I install it. Does the day 3 update include everything I need from day 2?

What I mean by “need” is this: Suppose this: The day-1 update includes components A and B. I install the update. The day-2 update includes newer versions of both components A and B. I missed the day-2 update. The day-3 update includes a newer version of component A, but nothing for B. When I update on day-3, will I get the newer versions of both components A and B? I wouldn’t care if I miss the older version of A since I’m getting a newer version of it, unless the newer version needs the older update. Either way, I’d be concerned about never getting the newer version of B.

I ask because, once, I think I couldn’t use my laptop for a few weeks and, since updates usually come every couple of days or so, I likely missed a bunch. When I finally updated, I got a kernel a major version and several minor versions ahead of my last kernel. I don’t know if I missed anything besides the kernel and that might have been critical. Also, for a while, I had difficulty updating because if I didn’t update as soon as I got notice (which I have to solicit) my laptop’s request for update files was out of sync with what update mirrors were offering, because the mirrors had newer versions which Fedora was not yet requesting. (I raised that as an issue somewhere and I don’t know if it still happens.) This could also be an issue when someone installs Fedora for the first time and the version is already several months old when being installed, and it then gets updated. An update process would have to determine the last update that was installed (if any) and then search update mirrors for missed updates and then either select components (from the newer updates first) or install all updates starting with the oldest, something I can’t do because I don’t have enough information to do so. I don’t know if the update process does this.

I also ask because of an experience. The Software app said an update was available, but I left the computer without installing, while still leaving the Software app open and connected to the Internet. Later, the Software app said I had more updates, this time including LibreOffice. I refreshed the Software app, but now the list of updates available no longer listed LO. That was concerning. I installed what was still offered, meaning without LO. After that, it offered nothing more, not even a LO update. Then, at another time, I checked the Software app again, and this time a LO update was offered, which I installed. I don’t know why the Software app stopped offering the LO update, but one guess was that I had missed one LO update and had to wait for another LO update, in other words a different LO version, skipping one. That’s harmless but it implies that if the newest one had not become available I’d still be using an old one because I missed one and couldn’t go back and get it.

If I don’t update right away every time there’s a new update (and that’s normal), am I probably missing component updates in the end?

1 Like

Hi @nicklevinson, adn welcome to the community!

Short answer, yes, because …

… long answer, that is not quite how the system works: The package manager has no concept of day-1, day-2 … updates, or even updates to (in the sense of modifications to) components. It only knows about components (packages) and their versions. The servers will simply have whatever version of a package was pushed last.

Staying with your example, A-0 and B-0 zero are installed on day-0, and replaced with A-1 and B-1 (on the servers and on your machine) on day-1. A-2 and B-2 become available on the servers on day-2 and B-3 on day-3.
That means that the repositories now contain packages A-2 and B-3, because those are the newest versions of those packages, while your machine has A-1 and B-1.

What happens during an update is that for every installed package, the package manager checks which version is installed and which is available on the repository server, and upgrades it if the one in the repository has a higher version. So in your case, on day-3, it would see A-1 and B-1 on your system and A-2 and B-3 on the servers. Since A-2 > A-1 and B-3 > B-1, both get installed. You never see B-2, but that doesn’t matter, because B-3 is supposed to replace B-2 which was supposed to replace B-1, and the package maintainers make sure that no functionality is lost on the way. It doesn’t matter what entered the repositories when, the only thing that matters is the version numbers.

5 Likes
  • On upgrade, the package manager downloads the latest version from the enabled repos.
  • Using incremental downloads makes it to rebuild the full package before installation.
  • Installing a new package always replaces the previous version as whole without increments.
1 Like

All this could explain why I sometimes get more than promised in an update. A window lists a number n of things it will update (say, Firefox and the OS as 2) and I promptly agree and it promptly does its thing and the resulting report of what it did lists n+m things it did update, which I don’t mind, but now I think I know why that occasionally happens. Thank you.

It is the intention of Fedora and dnf, that you may dnf update as frequently or infrequently as you like, with the same net result.

The intention is often put to the test: whenever someone downloads the Fedora Desktop ISO, they get Fedora as of the moment of release, which is up to six months old. Then they do a big, long-delayed dnf update!

However, as a curiosity, we might mention that maintaining the ideal is not cheap or easy. It requires the software packaging volunteers to ensure that the %pre,%post scripts in each new RPM version are compatible with the effects of the %preun,%postun scripts in every prior version of the RPM that ever existed… because when you update from RPM version 1 to version 100, dnf does not install the 98 intervening versions, but instead updates directly from 1 to 100 using the scriptlets in those two respective versions. Occasionally, there is a lapse, either upgrade work that slipped everyone’s mind because it happened so long ago, or a buggy new version that is soon replaced with a better one. Therefore, as a rule of thumb, you’re slightly more likely to have a problem-free experience if you update Fedora frequently but not too frequently.

2 Likes

This makes sense. I wish I could remember a few bazillion details myself. I can’t think of any programming advice you wouldn’t already have thought of.

I’m surprised by the advice “update Fedora frequently but not too** frequently.” I’ve sometimes found that if it’s been a while and then I try to update the result is that something doesn’t match up with the mirrors (I’ve forgotten the exact message in the black popup) and I can’t update at all, until some future update is offered and then all is good again. So, I try to update as often as I can, typically checking almost every night, late (this depends on the time zone.

If less-than-max frequency is thought to avoid the buggier updates, this, of course, is impossible, as no one says “I’m giving you this update and it’s buggy”. You all do a great job and we’ll live with the occasional bug.

1 Like