Offline update and upgrade of your Ubuntu or Linux Mint system are useful especially when you have a bunch of PCs on the same network. You don’t need to waste your internet bandwidth deploying updates and upgrades repeatedly for each PC.
Instead, download the updates on one PC and then perform offline updates on other PCs. The other PCs can be on the same network or you can use a USB drive to transfer the updates.
Reasons for Offline Update:
- The absence of the desired network interface. Say you have a wireless network, but a system you possess only supports wired connection as it doesn’t have Wireless hardware installed
- Having to update a large number of computers with limited network connection (data or connectivity)
- The absence of proper internet connection (especially in developing countries)
We are going to use a program called apt-offline to install updates and upgrades offline in an Ubuntu system. You’re going to need another system with a proper internet connection and a USB storage device.
Update Ubuntu, Linux Mint Offline using apt-offline
apt-offline brings offline package management capability to a Debian based system including Ubuntu and Linux Mint. It can be used to download packages and its dependencies to be installed later on to the different system.
Command Synopsis:
apt-offline [ARGUMENTS] [OPTIONS]
Installation
The installation of apt-offline is simple. To install it, use the apt command:
sudo apt install apt-offline
It is only useful for a situation where the system has an internet connection, but you need to install updates on many computers which is data intensive, so you can afford to install only the program individually on all systems.
To install it offline, first enter this code in the system that has an internet connection:
sudo apt-get download python2.7-minimal python-minimal python3 python3-magic libmagic-mgc libmagic1 apt-offline
It downloads the .deb packages of apt-offline and its dependencies. If you check in the home directory, you will have the packages of these names downloaded in your home directory with a .deb extension. Copy these to a USB drive and transfer them to the home directory of the target computer.
Now install these on the target computer using:
sudo dpkg -i *.deb
It will install the dependencies of apt-offline and the program itself.
Also, and very importantly, install apt-offline on the computer that has an internet connection. You can do so with the installation command mentioned already discussed in the above section.
FYI: The best results is possible if the system that needs to be updated and the system on the computer with the internet connection have a same OS. It makes the download of update packages easy both systems have the same repositories.
Usage
Now that you have installed it, you have to create a list of programs that need to be updated/upgraded. For this, run the following command on the target system:
sudo apt-offline set ~/file.sig
The location of the file given as ~/file.sig can be anything, but for the sake of simplicity, we would recommend you to keep it as id, with the name ~/file.sig.
A file named file.sig will be created in your home directory after running this command. Copy it to your USB drive and insert the USB drive back into the computer having the internet connection. Now copy file.sig from there, and paste it to the home directory of that computer.
You have the list of the programs that need to updated/upgraded in the computer that has an internet connection. Therefore, you can download them now. Run the following commands:
mkdir packages
To make a directory named packages that will contain the downloaded files.
apt-offline get -d packages/ file.sig
All the packages should get downloaded. It might take longer, so sit back and relax.
After the download finishes, copy the directory packages to your USB drive and copy it to the target system’s home directory. Now install those packages by running:
sudo apt-offline install packages/
Input ‘y’ when prompted as seen in the screenshot below:
It will install all the packages.
Conclusion
As you noticed, the program apt-offline is an excellent utility to perform offline updates on Ubuntu and Linux Mint in certain situations where you have many systems that must be kept updated. Download updates only once and then deploy the same packages to rest of all the systems.
For areas that do not have decent enough internet connectivity, the users can install updates with this and keep their systems updated.
And finally, for systems that have don’t have a network interface to connect to the internet (very rare scenario, but not impossible either), you can install the updates via offline update.
Let us know about your thoughts in the comments. Cheers!
2 comments
Excellent utility. But … (isn’t there always a but? 🙂 )
I have several machines. They share some packages but not others. All machines are online, but I’m trying to avoid downloading shared packages multiple times.
For example, machine1 might use packages 1,2,3,4. Machine 2 might use packages 2,3,4,5 6. Machine 3 might use 1,3,4,6.
With this system I am assuming the “get” would download all packages 1-6.
When I then ran “install” on each machine, would they all have packages 1-6 installed, even though they didn’t start off that way? Is there any way of only having each machine install the packages it needs?
This is nuts!
“To install it offline, first enter this code in the system that has an internet connection:”
I have no internet connection, isn’t that the point!
I need to download a package on a public PC into a thumb drive. Take it home and install it on Mint 64 bit at home.