# Debian APT Installs on Disconnected Systems Notes on installing software using Debian/Ubuntu APT repositories on systems that aren't connected to the Internet. This is a two-step process, because the software we want to use (apt-offline) isn't installed by Ubuntu Server by default. So to bootstrap this on a server that doesn't have an Internet connection, we first need to manually retrieve the files needed to install apt-offline, and then we can use it for other software. => https://askubuntu.com/questions/974/how-can-i-install-software-or-packages-without-internet-offline Source for most of this process ## On the disconnected machine Run this: ```Bash apt-get -y install --print-uris apt-offline | cut -d\' -f2 | grep http > apturls ``` Then, copy the resulting file ("apturls") to a networked machine, using whatever method is available. SCP, USB stick, NetCat... anything reliable, really. A USB stick if nothing else works. ## On the networked machine Use wget to download those files... `wget -i apturls` will pull down a bunch of .deb in the proper architecture for the other machine. Tar them up (or whatever) and move them back to the non-networked machine ## Back on the disconnected machine * Open up the TAR archive and install all the .deb files wuth `sudo dpkg -i *.deb` (it should do them in the correct order automatically) * Verify that apt-offline is now installed (apt-offline --version will report the version number) Note that as of Sept 2023, there's an issue in the current version of apt-offline in Ubuntu 22.04 (version 1.8.4), so after this I also installed the latest version from the Ubuntu 23 release (1.8.5) which fixes the issue (Hopefully this will be resolved soon... it's a Python 3.10 deprecation issue.) ## Disconnected machine, again On disconnected machine, create a "signature" file for the packages that you want to install: ``` sudo apt-offline set --install-packages wireguard --update wg.sig ``` Then copy that .sig file to the online/connected machine... ## And networked machine, again On the connected machine, which also has apt-offline installed, pull down the files and metadata into a "bundle": ``` apt-offline get wg.sig --bundle wg.zip ``` (Note that sudo is not needed on the internet-connected machine, since it's just pulling down files and zipping them up.) Then take the resulting "bundle" file (zip archive) back to the disconnected machine... ## Disconnected machine Run: ``` sudo apt-offline install wg.zip ``` Note: That populates the APT cache but *does not actually install the packages* onto the system! (This confused the hell out of me.) The final step is to run `sudo apt install PACKAGE` for whatever the name of the package was, to complete the install/configuration as normal. Rinse and repeat as needed! # Metadata Written: 2023-09-14 Updated: 2023-10-29 Converted From: Evernote Tags: Linux, software