DNF Update from another PC

Hello everyone!

I am running Fedora 29 and I have a traffic volume quota at home. I wonder if there’s any way I can download fedora updates for my stationary PC, the ones I do via ‘dnf update’, from another PC?

Perhaps there is some kind of delta-file I could create with dnf?

E.g.

  1. I run dnf on my home PC with an option to create a file that contains a list what updates are to be installed.
  2. I go somewhere with that file, run dnf again and tell it, to read the contents of that file created on that other machine and download the updates listed in that file, and in the last step
  3. I run dnf on the home PC again telling it to install the locally downloaded update files.

Or even a simpler way I didn’t think of?

Thanks in advance for any help!

1 Like

Look into python3-dnf-plugin-local. This allows you to create a local repository that can then be accessed by other machines through your local network.

1 Like

Hello.
Maybe there is a better and elegant way (like the local repository). But you can follow these simple steps.

On the host you want to update offline, get the list of installed packages (without the version number) and put the output in a file:

rpm -qa --qf "%{NAME}\n" | tee rpmlist.txt

Bring this list to the other host, the one from where you want to download the packages, and actually download them (destdir could be an USB stick with enough room):

dnf download --destdir /run/media/user/usbstick $(cat /path/to/rpmlist.txt)

Plug the usbstick to the host to update and issue this command:

dnf update --disablerepo=* /run/media/user/usbstick/*rpm

Note: I’m unsure if it really works, I tested it on a brand new VM and it seems to work. Please take care that configured repositories are the same in both systems, and that both system have the same architecture. What I don’t know if it could create issues, is the case where an update needs to install an additional dependency.

3 Likes

Welcome to the community @glennzo @cowboybebop. Please take a minute to go over the posts in the #start-here category if you haven’t had a chance yet.

This is exactly what I was looking for! Thank you so much for this!
Of course a local repo would be more elegant, but that would be too much for my purposes.

Thanks again!

1 Like