A while ago we have shown you how to install software in any offline Ubuntu system and any offline Arch Linux system. Today, we will see how to fully update and upgrade offline Debian-based systems. Unlike the previous methods, we do not update/upgrade a single package, but the whole system. This method can be helpful where you have slow Internet speed or don't have an active Internet connection at all.
Fully Update And Upgrade Offline Debian-based Systems
Picture this scenario. You have a system (Windows or Linux) with high-speed Internet connection at work and a Debian or any Debian-based systems with no internet connection or very slow Internet connection at home. You want to upgrade your offline home system. What would you do? Buy a high speed Internet connection? Not necessary! You still can update or upgrade your offline system with Internet. This is where Apt-Offline comes in help.
As the name says, apt-offline is an Offline APT Package Manager for APT based systems like Debian and Debian derived distributions such as Ubuntu, Linux Mint. Using apt-offline, we can fully update/upgrade the Debian-based systems without having to connect them to the Internet. It is cross-platform tool written in the Python Programming Language and has both CLI and graphical interfaces.
- An Internet-connected system (Windows or Linux). We call it "online system" for the sake of easy understanding throughout this guide.
- An "Offline system" (Debian and Debian-derived system).
- USB drive or External Hard drive with sufficient space to carry all updated packages.
Apt-Offline is available in the default repositories of Debian and derivatives. If your Online system is running with Debian, Ubuntu, Linux Mint, and other DEB based systems, you can install Apt-Offline using command:
$ sudo apt-get install apt-offline
If your Online system runs with any other distro than Debian, git clone Apt-Offline repository:
$ git clone https://github.com/rickysarraf/apt-offline.git
Go the directory and run it from there.
$ cd apt-offline/
$ sudo ./apt-offline
Install Apt-offline on Offline system:
If your offline system has slow Internet speed, you can install apt-offline using APT package manager as shown above. But, what if that system is not connected with Internet? No problem. In that case, go to any Internet-enabled system, and download apt-offline.deb file from pkgs.org website. Copy the .deb file to a USB drive, and then go back to the offline system and finally install it using command:
$ sudo dpkg -i apt-offline_1.7.2_all.deb
If it didn't work for any reason, you still can download the Apt-offline package along with all dependencies on any Internet-enabled system and install it on the Offline system as described in the following guide.
Well, we have now installed Apt-offline on both Online and Offline systems.
Steps to do in Offline system (Non-Internet connected system)
Go to your offline system and create a directory where you want to store the signature file:
$ mkdir ~/tmp
$ cd ~/tmp/
You can use any directory of your choice. Then, run the following command to generate the signature file:
$ sudo apt-offline set apt-offline.sig
Sample output would be:
Generating database of files that are needed for an update. Generating database of file that are needed for operation upgrade
By default, apt-offline will generate database of files that are needed to be updated and upgraded. You can use use --update or --upgrade options to create database for either one of these.
Copy the entire tmp folder in an USB drive or external drive and go to your online system(i.e. Internet-enabled system).
Steps to do in Online system
Plug in your USB drive and go to the "tmp" directory:
$ cd tmp/
Then, run the following command:
$ sudo apt-offline get apt-offline.sig --threads 5 --bundle apt-offline-bundle.zip
Here, "--threads 5" represents the number of APT repositories. You can increase the number if you want to download packages from more repositories. And, "--bundle apt-offline-bundle.zip" option represents all packages will be bundled in a single archive file called apt-offline-bundle.zip. This archive file will be saved in your current working directory.
The above command will download data based on the signature file generated earlier in the offline system.
This will take several minutes depending upon the Internet connection speed. Please note that apt-offline is cross platform, so you can use it to download packages on any OS.
Once completed, copy the tmp folder to USB or External drive and return back to the offline system. Make sure your USB device has enough free space to keep all downloaded files, because all packages are saved in the tmp folder in USB drive now.
Steps to do in offline system
Plug in the device in your offline system and go to the tmp directory where you have downloaded all packages earlier.
$ cd tmp
Then, run the following command to install all download packages.
$ sudo apt-offline install apt-offline-bundle.zip
This will update and populate the APT database with downloaded packages in your offline system, so APT will find all required packages in the APT cache.
Note: If both online and offline systems are in the same local network, you can transfer the tmp folder to the offline system using "scp" or any other file transfer applications. If both systems are in different places, copy the folder using USB devices.