I have a friend who has got a computer that is not connected to the Internet. Is there any way to install software offline easily?
Check out Keryx, it's an offline repository manager.
How does it work? It lets you download updates and new programs (with dependencies) to your flash drive.
Its interface is similar to synaptic but it works from a pendrive (it doesn't need installation). Unfortunately, the GUI needs wxwidgets, which don't come preinstalled on Ubuntu (they're cross-platform and installable from here and ubuntu repository here). It can only install software in a Ubuntu system, but you can download the updates or new packages in any Linux, Windows or OS/X.
Here you can find a tutorial.
Another detailed step-by-step tutorial in this answer.
Launchpad also hosts downloadable files.
A quick hack
A quick hack is to copy all the packages you downloaded for your install to his machine. The .deb files are stored in
A DVD repository
If you want the latest bug fixes and security patches available then have a look at this tutorial, which covers creating your own DVD repository.
A USB repository
If you have a decent sized USB stick - assuming around 4-8Gb (or external hard drive) you can set up a custom copy of the Ubuntu repository and configure that as a local repository as covered in AptGet/Offline/Repository on help.ubuntu.com.
To get the actual package files (the .deb files), I suggest using
and edit its configuration file
Only include the repository sections you want. Here is a simple example that copies the binary .deb files from all 4 sections (main, restricted, universe and multiverse) as well as the latest bug fixes.
It is guesstimated that you will need around 15Gb of space for all 4 sections, without the source.
I have put the path for all the .deb files to be
If you just want the main files, remove the restricted, universe and multiverse names from the configuration file.
If you are using a different architecture (you have 64bit, but your friend has 32 bit) then add the following at the start of the mirror.list configuration file:
Once you have the
Once you have the .deb files, copy the files to your USB memory stick (or external hard drive) and set up the local repository as per the article mentioned previously.
Test it works before taking it to your friend!
You need to get a PC with Internet connection first, where you can download required .deb files. Once you have downloaded all the files, You can now create a CD/DVD rom or ISO file which can you use to install the software you have downloaded in your offline PC.
Start with a clean install or VM.
Install the packages you want on one PC
Note that aptoncd only backs up things in the current apt-cache.
I use apt-get with the "--print-uris" option to do it. I also add "-qq" so it would be quiet.
Use sed to remove extra characters added to some filenames (something like 3%2a) and to get the url, filename and md5sum of files. Use wget to download the files. Use md5sum to check if the files are downloaded properly.
You may use this to create a shell script for Linux or Mac OS (replace ".cmd" in the commands to .sh and do "chmod a+x (filename) to add permission to execute the script) or a Windows Command batch file, and an MD5Sum file to make sure the files are downloaded correctly.
Create md5sum file:
You need md5sum for Windows if you're using that operating system to download files.
Create script to download repository listings:
Checking MD5 Sums
You may add these to the ends of scripts to check md5sum:
Windows (uses older md5sum, does not support --quiet):
To add automatically to script:
Installing List Files (Update Command)
Run these commands to the target computer.
You need to use bunzip2 to extract the repository list files:
Then copy to listing folder (current folder only contains list files):
Above combined (current folder may contain other files):
If you want to make downloading the files faster, try using Axel.
Folder Hierarchy (Downloading files using Windows)
I usually create a folder like this:
This will separate the *.deb files and list files into different folders.
Updating your system
Download Executables for Windows
Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
You may also use the ones from MinGW, which are what I use. You only need wget.exe, md5sum.exe and the necessary shared libraries. Check the section "Folder Hierarchy".
You can use Cube. It is an offline package management system which is compatible with Ubuntu, Linux Mint and other distributions that use apt-get.
Latest Preview of Cube 1.0.8 (February 7, 2014 Release)
Running in freshly installed Ubuntu 12.04
Microsoft Windows -- Downloading packages
Ubuntu (Original Computer) Installing previously downloaded packages
It is written in C#, and running in both Windows and Linux Distributions using mono-framework. Cube is a portable application, and no additional applications needed to be installed in Linux to use it.
You can download it from its Launchpad page (cube.zip) : Camicri Cube Launchpad Page
Or from SourceForge : Camicri Cube SourceForge Page
A tutorial is also included in the zip.
Still in continuous development (BETA) phase, Debian Apt-Based distributions (Ubuntu and Linux Mint) are currently supported (Both 32 and 64bit). Kindly read the "Readme.txt" inside for more details. You could also help in maintaining it by reporting bugs and translating to your language at its launchpad page. Thank you.
In synaptic you can select the packages you want to install and under the first menu there is an option to generate a script which you can take to another machine and run there. This script will "wget" (i.e. "download") all the packages you specified that you wanted (and their dependencies) which you run on a computer that does have internet access.
Once run you'll have all the package files needed by the disconnected computer. Carry them on a CD/USB stick and install them by
Step 1: Get the download URLs in a file :
Execute the following command replacing package-names with required ones, separating by a space.
Step 2: Copy this file (apturls) to a machine which has high-speed Internet access, and execute the following command to download the packages:
Step 3: Now get those downloaded packages to your machine, and install them using :
You can use
The Offline installation is achieved in 3 simple steps.
Apt-offline can be even used in Windows systems. In my opinion,
There are several good, effective answers listed above. However, this is the mechanism I personally use -- apt-ftparchive. I'm documenting it here, in case I need it again in the future. Perhaps it might be useful to you.
Creating the Archive Snapshot
Using the Archive Snapshot on the Offline Target System
For offline installation you will need the packages. If you are using a Debian system
You may have problems with dependencies. You need to install all those first for a successful offline installation.
Yes. You can download the DVD iso, burn it on a DVD, and install the software from the DVD. See here CDs and DVDs can be given as source to package managers in the same way as online archives.
The first thing you could do before an offline package installation is update the repository/repositories that you need. You should for sure like an updated the Main repository (for free and officially supported software).
The applications which you are looking to install might be in some other repositories like the Universe (free but no official support), or the Restricted (non-free, officially supported), or the Multiverse (non-free, no official support) repository. So you might want one or more of these too.
So the first step in the process is to build an updated offline repository; then generate the "to-download" list and download them, and finally the insatllation. Here's how it's done: source
Getting the updated package database including the security updates
The following structure, in addition to above explanation, should give you the idea:
If you have no connection to internet whatsoever and have not got anyone near where you can connect to the internet there is an option not mentioned yet: have someone send the source files via the regular post.
You can get the whole Ubuntu OS through mail by paying for a DVD. The same way you could ask an on-line friend to send you the DEB files or even the source files for a package like VLC to you. Though it might be worth it to have someone send a complete DVD with all packages. That way you can install it from that DVD.
This is not a fully detailed answer, but at a high level you could:
I suggest to customize Live CDs and install them.
You also can download the files on http://packages.ubuntu.com/filename, but then you have to pay attention to the dependencies, too.
Another possibility is to use remastersys. This tool allows you to make an iso image from your own system and after creating a bootable usb stick via unetbootin you can install a customized system to as many computers you want.
I have a couple of simple suggestions. You can go to the library. Look in the computer section for the operating system that you want, some of the books have DVD's inside of them. Also, if you want the most up to date operating system, I would reccomend this website where you can purchase a DVD for a nominal fee. www.ubuntu.com/download/desktop.
This question is a bit old so an answer at this time may be redundant, but perhaps you could also try using dpkg-offline. Install bzr, then:
there's a tutorial and a readme file included in there.
Assuming you want to install git on an Ubuntu 14.04 amd64 system, even if your system is e.g. 12.04 i386, you can:
dpkg-offline will work with any Ubuntu desktop version from 10.04 onwards (I haven't tested with older versions but they should also work), and with any Ubuntu server version from 12.10 onwards. It should also work with amd64, i386 and armhf images regardless of the host architecture. Again, I haven't tested with arm64 or powerpc/ppc64el but they may also work.
Disclaimer: I wrote dpkg-offline.
For a system that will always be kept offline, it is usually best to use one of the robust offline package management methods presented in some of the other answers, since they facilitate keeping already-installed packages up to date rather than merely installing a handful of packages, one time.
However, for isolated cases where you just want to quickly install packages on a system that doesn't have an Internet connection (and you have the ability to download them on another machine and bring them over), you can do so. The main complication is determining what you need, since a package often has other packages it depends on, and which must therefore be installed before, or at the same time as, the package is installed.
This answer is motivated by the duplicate question g++ in Ubuntu 14.04, and uses the case of needing to install
I emphasize that this method should not be used long-term as an alternative to something that at least facilitates automatically determining and installing needed security updates. Never connecting to a network reduces the potential for an attack considerably, but some security bugs can be exploited via data from any source.
While this method may look complex, it usually only takes a few minutes to actually use. For packages with a large number of dependencies, it may take longer. For installing metapackages that pull in a very large number of dependencies (e.g.,
Determining Needed Dependencies
You can simulate the installation to determine which other packages are needed to satisfy the package's dependencies. Passing the
If you actually want to install all the most common tools for building packages, rather than just
The output (for
This says that to install
Going by the results of a simulation is usually better than simply looking up a package's dependencies (or assuming that what you need is the same as the above), because:
Getting the Packages
Once you know what packages you need, you can download them. I suggest using Launchpad for this, because the downloads are SSL-encrypted, which helps prevent file corruption.
You can search for a package by typing its name under Packages at https://launchpad.net/ubuntu and clicking "Find a Package." For example, searching for
Then scroll down to the codename of your Ubuntu release. You're running 14.04, so that's Trusty Tahr. Codenames for all Ubuntu releases are listed on the releases wiki page. Click the rightward-pointing triangle to view package downloads for it.
For some packages you may be able to expand lists of downloads from more than one pocket. You may see:
For example, here's what's available for Firefox in 14.04:
Generally you'll want packages in security or updates if they exist, and otherwise packages in release.
Once you expand the list of packages, find the
For example, to get the
Installing the Packages
If the packages you retrieved are the same versions
If this system was never connected to the Internet, then this will probably be the case when all the packages you retrieved were from the release pocket. Regardless of whether or not the system was ever connected to the Internet, this will also almost always be the case if no packages in any other pockets were shown on Launchpad. (Essentially the only situation it won't is if you installed an alpha or beta system and never updated it.)
In the specific case of installing
In cases where that doesn't work or you expect it won't, install the packages by putting them in an otherwise empty folder and running:
Or you can name the packages individually. This example supposes the packages are in the current directory (i.e., that you've
Unless the number of packages being installed is very small and you know the precise order in which they need to be installed for dependencies to be satisfied, it's considerably more efficient to use those methods than to manually install each package individually.