Maintaining "Portability" Between Linux and Windows 7

2

1

I am using the following ways in my office's Windows 7 machine to maintain my "portabilibity" when disaster strikes and I need to switch computer while I have no luxury of time for reinstalling all my program to the new PC.

  • a majority of programs I used are portable, mostly from portableapp.com, like notepad+, GIMP, even R, I extract them and store them in a folder in My document, in a structure similar to the default portableapp installation when they are installed to a thumbdrive
  • only a few software that portable version is not available and I will install them as usual
  • all of my working files are stored in a folder in My document

I regularly backup them all using syncback, because this program can keep versioning of my backup, and the backup is stored in a portable drive.

One day I need to switch my computer and the operation is relative simple for me: I just move the two folders mentioned above into the my document folder of the new PC, install those few "non-portable" program in it, and this is almost done, some minor hiccups can be solved by reinstalling the portableapp into the drive. Overall speaking it is a smooth process.

I would like to maintain the same degree of "portability" in my home Linux desktop (Ubuntu or Mint, I'm still deciding), that is, if my Linux crash and I need to reinstall it again. All I need to do is the move the two folder back to the new Linux, and most of my work will be almost ready to be worked on again. But I don't know how to find a Linux-alternative of portableapps.

Being a newer to Linux, can anyone tell me whether this is possible in Linux?

lokheart

Posted 2011-11-25T06:00:49.537

Reputation: 473

Answers

2

Linux doesn't really have portable apps per se,[1] but you can maintain a list of the main package names of the non-default programs you install (you don't need to list any dependencies; just the primary package). Then, you can easily re-install them.

For example, you might have this file, called ~/installed_apps.txt:

agave
gimp
openssh-server
qalculate

Then, to reinstall, do this (assuming a Debian-based distro such as Ubuntu or Mint):

sudo apt-get install $(cat ~/installed_apps.txt)

The programs will be downloaded and re-installed. And provided that you backed up your entire home directory, including the files and directories beginning with dots, you'll also retain most of your settings. A backup of /etc ought to get most of the rest.

[1]: In a number of cases, you could compile programs yourself such that they'd be largely portable. However, such a method wouldn't be useful, because you'd miss out on all the great advantages of package management.

EDIT:

Provided that aptitude is installed, here's a script I wrote to list all the non-autoinstalled packages. It is a useful tool, but be aware that if you're disciplined in using the approach above, you'll get more accurate results.

#!/bin/bash
aptitude search '?and(?and(?not(?automatic),?installed),?not(?section(libs)))' --display-format '%p'

Save it somewhere (such as ~/bin/list_nonautoinstalled_packages) and make it executable. You can then use it to generate your installed apps list:

~/bin/list_nonautoinstalled_packages > ~/installed_apps.txt

When using this script, I've found it best to manually review the output file and prune unnecessary stuff. Doing so is good in case you upgrade your system; dependencies may change, so you'll only waste disk space if you include dependencies in your list.

Scott Severance

Posted 2011-11-25T06:00:49.537

Reputation: 531

+1, In fact you can take this idea even further on debian based distros by automatically generating the list of installed packages using dpkg --get-selections – Andrew Walker – 2011-11-25T09:04:39.700

1@AndrewWalker: True, but that will also include autoinstalled packages included as dependencies, as well as packages installed by default. That might or might not be appropriate, but if you consider the case of reinstalling on a different version, it could at the very least waste disk space. I've tried to come up with an ideal solution in the past and found the corner cases to introduce lots of difficulties. – Scott Severance – 2011-11-25T09:13:32.957

1@AndrewWalker: I've updated my post to reflect a way to generate the package list. – Scott Severance – 2011-11-25T09:25:48.830