Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am facing some problems with current installation of Ubuntu 12.04. I'd like to go for fresh installation of Ubuntu 12.04 LTS and I don't have a separate partition of Home folder.

I have started doing simple jobs like package migration and PPA uploading etc with Ubuntu.

My request is, what are the files I have to backup to make sure my new installation is ready for development?

share|improve this question
up vote 3 down vote accepted

This really goes for any coder, not just ones that work on Ubuntu or platform code, but here's what I'd go after:

Code Files Obviously, if you're writing code, these should be backed up somewhere (and versioned). I highly recommend somewhere like bitbucket (for private repositories) or GitHub (for public/open source ones). In the future, one thing that can help with this one is to keep a separate "data" drive or partition, that way your data is separate from your OS (you can also use this for some programs, such as SublimeText or Eclipse, which don't actually install in the usual sense).

Scripts This should go hand-in-hand with the code files, but any scripts that you write, such as build or deployment scripts, you'll want to back up so you don't have to rewrite them.

Database files Depending on the database technologies you use, you might need to backup the actual files for existing databases. For example MongoDB might store these files under /var/lib/mongodb. Alternatively, you may be able to export your database using the database's available tools.

Settings/Config Files You've taken the time to set up Sublime/Eclipse/Bash/Vim/[insert tool here] set up just the way you want it, and you don't want to go through that again, so make sure you grab the config files that you can. There are a bunch in ~/.config and even just ~/ (ie - .bashrc), but some applications store them elsewhere, so make sure you find all the ones you use, and write down what goes where. Don't forget about your library/tool configs (ie - Apache/Nginx configs and vhost files, the global gitconfig file, etc).

Other Support Files Do you have code templates or snippet libraries that you use? Make sure you grab them, too, so you don't have to re-find them again.

Virtual Machines If you have any virtual machines, make sure to grab them, too, so you don't have to worry about reinstalling them as well.

Why not the whole home directory? Depending on what troubles you're having with your install, the issue could be with your home directory, itself. If that's the case, then backing the whole thing up and restoring it will continue your problems. However, if you know that your home directory isn't the issue, you can back it up and restore it after install.

A list of all the applications and libraries you need Ideally, it'd be good to script this, but to start, make a list of all the programs you need to get up and running. That way, you can stick them all in an apt-get install call and have them installed all at once, and for the things not available in apt, you can go grab those while apt is doing its thing. By doing this, you get up and running as quickly as possible, without having to have a bunch of starts that are stopped because you forgot a particular library or application.

UPDATE 2013-04-03 12:45 PM UTC/GMT: added database files as a category

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.