I feel that updates in Fedora are more frequent than those in other distributions like Ubuntu LTS. So, you need to update your system regularly.
If you are in a place with limited to no internet connection, upgrades will be pending for a significant time, which is not an ideal condition for a healthy system.
I had come across a Reddit discussion that Fedora had a mechanism for offline updates. I gave it a try and now I am sharing my findings with you.
I am going to discuss two scenarios:
Offline updating Fedora system with limited internet connectivity: Here, you can at least update the package cache to see what installed packages can be updated. Works if you have a system running on limited mobile data.Offline updating a Fedora system that has no internet connectivity: Here, you have no clues on what packages can be updated. So, you make a list of all installed packages and download updates for all of them.
Both scenarios follow pretty much the same steps. You download the package updates on another Fedora system that can be connected with internet and then transfer the downloaded updates to the offline Fedora system via a USB.
Both offline and online Fedora systems should be running the same Fedora version.
Scenario 1: For Systems with limited internet connectivity
In this case, I assume that you have a limited metered network like the mobile internet. This can result in an efficient update, as you will be able to get some details about the package status of your system and the repositories.
Creating the list of packages to update
First, on the offline system, I got the details of all installed packages that required an update.
This can be done in a terminal by using the command:
dnf repoquery –upgrade –queryformat ‘%{name}.%{arch}’ > updates.txt
Let’s view the contents of the file using the command:
less updates.txt
It contained a list of packages that required an update.
Update package list
Downloading the update packages in a separate system
Next, on a Fedora system with sufficient internet connection, I created a folder in the download directory called “downloaded-packagesâ€:
mkdir -p ~/Downloads/downloaded-packages
Now, with the command below, I downloaded the update packages.
dnf download –resolve $(cat updates.txt) –downloaddir=”/home/$USER/Downloads/downloaded-packages”
It downloaded all the packages in the updates.txt file to the specified directory.
Downloaded packages
Then I copied this directory to a USB drive.
Installing the downloaded package updates
Now, on the offline Fedora system, I plugged in the USB with updated packages to the offline Fedora system.
I copied the downloaded-packages folder from the USB to the Downloads folder on the system.
Now, I switched to this copied directory:
cd ~/Downloads/downloaded-packages
And installed the updates on packages with:
sudo dnf install *.rpm
Method 2: For systems with no internet connection
Now, consider the situation where you have a system with no internet connection at all, but you can access the internet in some other places.
List of all installed packages
In this method, I listed all the packages installed on the system and saved it to a file:
rpm -qa –queryformat “%{NAME}n” > packages.txt
This was a huge list with all the packages installed on the system.
I copied this file to a USB and moved it to the system that can access the internet.
Download all packages
On the Fedora system with an internet connection, I downloaded all the packages using the command:
dnf download –resolve $(cat packages.txt) –downloaddir=”/home/$USER/Downloads/downloaded-packages”
I copied the folder to a USB and then moved it to the Downloads folder on the offline system.
Update the offline system
After copying all the required files to the local system, I moved inside that directory and install those packages using the command:
cd ~/Downloads/downloaded-packages
sudo dnf install *.rpm
This will install all the packages from the list.
Conclusion
You may use –disablerepo=* option to disable checking the repo and mirrors. Use this option with caution.
Moreover, it is important to note that Fedora is not a system known for working entirely offline. You may find errors specific to your particular system as well.
Thankfully, we now have internet connection available in most parts of the world. And operating systems these days are geared to be used with an active internet connection.
Still, in some rare cases, computers do work offline. Although, Fedora is not the ideal operating system for such scenario.
Source: Read More