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 used sudo apt-get remove python command and accidently removed a bunch of packages that were required. I logged in via command line and installed ubuntu-desktop again but there are other packages that are missing, and I'm looking for a way to easily reinstall those removed packages. Since there's the log at software-center I wanted to ask what the easiest way might be to roll back changes or extract the removed packages list from the software center...

note: I typed sudo apt-get install .... .... ... ... for about two dozen of those removed programs in that list, but when I pressed enter it didn't install any of them because some package names couldn't be found.

The programs were removed at the same date.

share|improve this question
Look in /var/log/apt/history.log – Lekensteyn Jun 26 '11 at 12:35
up vote 12 down vote accepted

First of all, let me say that removing python can lead to many fundamental commands not work anymore. So I don't known if what follow will work.

Secondly, I assume that the package names couldn't be found error you have, derives from a mispelled name on the command line, or from a package installed locally and not available in repositories.

Then, to obtain a log of removed packages, relatively to the last dpkg log available (I don't think you need to take into account older logs):

awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log | tee list

Then edit the list file created in the current directory, and only leave lines relative to packages you want to reinstall, based on timestamp of the line. Say you save the modified file to list-mod.

To reinstall that packages, use the following command:

sudo apt-get --simulate install $(awk '{ print $3 }' list-mod)

I inserted the --simulate option to see what the command would do. If it is all ok, do the command again with that option removed.

If the command say some packages cannot be found, simply remove them from list-mod and try again.

share|improve this answer
thank you, i was able to reinstall the packages i needed! One question though, there is more than 200 packages removed on software center log, but the list file had about 150, does this mean that dpkg.log doesn't contain automatic installs/dependent packages? again thanks for this solution :) – Logan Jun 26 '11 at 13:13
That log file contain every installed, upgraded, removed or purged package, and with every application from dpkg to apt-get, aptitude, Synaptic, Software Center, gdebi, etc. You can give a look at older dpkg.log files, see ls -lrt /var/log/dpkg.log*. – enzotib Jun 26 '11 at 13:19
@enzotib I ran a script for purging old linux headers, and i think that the regular expression matched many of the packages which I did not want to delete (very important ones!!). Your answer saved me from a certain disaster. – shivisuper Jun 28 at 8:28

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.