Back up your applications

Contents

Scenario

Let us suppose that you are using a very special application. It may be possible that after a long time of use, the repository from where you downloaded your application is not available any more. It may also be possible that, after a long use, something happened to your device, and you need to reinstall your favorite application.

We are going to explain you a way to keep a copy of the DEB package of your favorite application, so that you can install it again even if the package is not available any more from the repositories.

WARNING: Downloading deb files for all the installed packages may cause the root file-system to be exhausted thereby "bricking" the device. Proceed with caution.

Needed Tools and Skills

To follow this tutorial, you need root access on your device and the following tools:

  • Terminal emulator (X Terminal or SSH)
  • VIM editor (Available in Extras)

Create the Archive folder

  • Open a terminal emulator and create the required folders using the following command:
mkdir /home/user/MyDocs/apt-archive-cache
mkdir /home/user/MyDocs/apt-archive-cache/archives
mkdir /home/user/MyDocs/apt-archive-cache/archives/partial

If you wish to use a different folder, substitue /home/user/MyDocs with the desired path.

Create Package-List

  • As a normal user type the following command to create a file (package.list) that contains a list of all the packages installed on the device:
$ dpkg --get-selections|grep install|grep -v deinstall>/home/user/package.list

In case you just want to download a selection of packages from that list, you should edit it and remove the lines you do not need.

For example, if you just want to download a copy of the package abiword, then you should:

  • As a normal user type the following command:
$ cat /home/user/package.list|grep abiword>package-abiword.list

If you want to download all packages, except one of them: debconf, for example. Then you should:

  • As a normal user type the following command:
$ cat /home/user/package.list|grep -v debconf>package-without-debconf.list

Third (and Last) Step

After previous steps, you have a list with all the desired packages you want to download to your device. In our previous examples this list could be any one of these:

  • package.list
  • package-abiword.list
  • package-without-debconf.list

Now you just need to edit this list in order to use it with apt-get:

  • As a normal user type the following command:
$ vi /home/user/package.list 
  • After vi editor is running, then type the following command:
 :%s!install!! 
  • This last command will clean the lines, removing the word install and leaving just the name of the packages. Now we want to add an order for apt-get to download the desired packages, so type the following command:
 :%s!^!apt-get --force-yes -yy -d install --reinstall ! 
  • This last command will add to the beginning of each line the needed instructions for apt-get to only download the packages: -d install --reinstall. In order to prevent the script from stopping at any question we have inserted the --force-yes -yy option. Now we just need to save the file typing the following command:
 ZZ 
  • To execute the script we need first to get ROOT access.
  • Then as ROOT type the following command:
 # sh</home/user/package.list 

It is done. All desired packages have been downloaded and can be listed with the following command:

$ ls /var/cache/apt/archives|grep deb 

Further Questions

If you have further questions, do not hesitate to place the question here in this section, and it will be answered in short.