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.