Fellow Fedora Immutable users, have any of you automated your system updates to occur at shutdown? If so, do you find it makes a practical difference?
I’m thinking of doing the same with Tony Walker’s silverblue-update service.
I shutdown most of my machines daily, and that often means getting an updated image shortly after startup the next day and being forced to reboot or nearly always remain one day behind in updates. By checking for updates again at shutdown, this should help ensure I’ve always got the latest daily image at boot. Thoughts?
I run the built-in automatic rpm-ostree upgrade service every 6 hours.
If you think that’s too inefficient, maybe read the docs for shutdown.target and see if you can use that to run an upgrade service before shutdown?
I’m not too experienced with that part of systemd but it seems like it could be a “proper” way to run things on shutdown?
Thanks, yeah I’ve found a few articles already on running scripts at shutdown…something like this should do it (using Tony Walker’s update script), though I’ve not tested it yet:
/etc/systemd/system/silverblue-update-at-shutdown.service: [Unit] Description=Fedora Silverblue Update at Shutdown ConditionPathExists=/run/ostree-booted DefaultDependencies=no Before=shutdown.target [Service] Type=oneshot ExecStart=/usr/local/bin/silverblue-update TimeoutStartSec=0 [Install] WantedBy=shutdown.target
I use uBlue and update manually (using a custom alias/script) whenever I get the time, like say during my lunch break or something. Reason being, I actually like watching the update process and seeing what gets updated, watching out for major version number changes or major package upgrades, and if I’m interested I may look up some of their changelogs to find out about their new features etc.
and being forced to reboot
You should be forced to reboot though? And if you don’t want to reboot, can’t you just do an
--apply-live
? I mean you’d still need to reboot for a kernel update but for the most part, you should be able to use most of your new packages without a reboot. And this holds true even more so if you’re updating Flatpak/container/Nix/pip/cargo/brew packages. And I hope you’re not doing the rookie mistake of actually installing stuff at the ostree layer instead of using Flatpaks/containers/Nix etc.I too like to review changes between images, but I’m just as content to run
rpm-ostree status
and/orrpm-ostree db diff
to see what exactly has changed.You should be forced to reboot though? And if you don’t want to reboot, can’t you just do an --apply-live?
I’m hoping to eliminate the extra reboot each day that is usually necessary to activate the latest image. I know that a lot of this will depend on exactly when the image drops from the repos (versus when I shutdown a host), which is why I was looking for some general feedback from others who might have done the same thing…I didn’t know if it’d be worthwhile in the long run, but I guess there’s only one way to find out. As for the
--apply-live
, I use it on occasion but I don’t want to rely on it for system updates (if that’s even possible).As for the
--apply-live
, I use it on occasion but I don’t want to rely on it for system updates (if that’s even possible).As I said before, it does work for system updates, the only exception being the kernel. The
--apply-live
flag was added for that exact reason, to avoid the need for an unnecessary reboot.
You could change the action of the power button I guess, some dconf stuff?
#!/bin/bash sudo waydroid upgrade distrobox upgrade --all flatpak update -y flatpak cleanup --unused -y rpm-ostree update shutdown -h now
On KDE this will work too. I simply alias that command to “update” and “upfin” (including the shutdown) but yeah that needs an improvement.