Hello,
I am using Fedora, but have a temperamental internet connection at home. Updating can be difficult because large downloads are slow and tend to reach timeouts most of the time.
Is there a way to have my system download one update from the list at a time instead of multiple?
This might at least help prevent me needing to retry upwards of 4-5 times hoping it all eventually succeeds within the timeout and failure limits it seems to have.
I did check online a bit and the manual for dnf, but web searching seems to bring up “updating a single package” not iterating through the available updates to baby my horrible internet. And the manual didn’t seem to mention anything regarding this.
Hoping there is something.
Thank you very much for any suggestions or guidance.
upgrade and update are the same thing, to put it simply, because they are needed to download new versions of programs or so that you can install fresh updates and the latest versions of applications. update — updating the list of packages. upgrade — updating the packages themselves.
Can’t speak to Fedora specifically, but most package managers let you configure the number of concurrent download threads it will use. Most are 3-4 it seems. Finding yours and setting it to 1 will probably do exactly what you’re asking.
Another option is to set it to only download the files, then install manually once they’re local to you. The options for this differ (eg. when installation order matters), so an RTFM is worth the time spent.
It looks like the setting is
max_parallel_downloads
in/etc/dnf/dnf.conf
. Here’s a post on how to increase it - so do the opposite, and set it to 1.Also there’s a
timeout
setting in the same file.
It doesn’t really make sense to do that. Even if you do resolve dependencies to identify which one needs to come first, you’re still going to need to take manual action to download and install subsequent packages.
You should probably see if you can increase the timeout and number of retries, or just set it to run with --download-only (or whatever the dnf equivalent is) in a loop until it succeeds. Then you can run the actual install all in one go from the download cache.
came here to see if Fedora had a --download-only equivalent.
have a temperamental internet connection at home
Love this description. :D
I don’t use Fedora or
dnf
, but looking at the manual on https://man7.org/linux/man-pages/man8/dnf.8.html I could find following:dnf [options] upgrade <package-spec>... Updates each specified package to the latest available version. Updates dependencies as necessary. When versions are specified in the <package-spec>, update to these versions. dnf [options] upgrade-minimal Updates each package to the latest available version that provides a bugfix, enhancement or a fix for a security issue (security).
So I assume you can just specify which package to upgrade only.The minimal variant does not support specific packages, but maybe a good idea to get all important stuff in one batch first. Then the general upgrade command would have less work to do I guess. At least here on the Arch side, upgrading a single package is absolutely not recommended. But I don’t know how
dnf
handles this.Also on Archlinux with
pacman
each package gets downloaded before the installation process begins. So if your internet goes away while downloading, it does not matter, because next time it will only download the rest of the packages and continue from that point. And it only starts installing locally after everything is downloaded from internet. Now, as said I don’t know howdnf
handles this, but would assume it does it similar.The major issue is to complain to/about your provider, not mess around with the workaround solutions.
That said once you have the list of packages, you can download them on your phone and seamlessly transfer them to your pc with Syncthing.
Have a look at dnf-automatic to do downloads only. I’m not sure how many retries it allows.
There is also the option of limiting your bandwidth on the PC so that it doesn’t choke.
Ultimately the ISP has to provide a working service.