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'm writing a Makefile for our team to be able to set up a local environment with all of the software they need to install packages, etc so that they can develop quickly without having to figure out which software to install. Our repository has a PACKAGES file that has all of the required ubuntu packages that can be installed with this little gem:

[unix]$ sudo dpkg --set-selections < PACKAGES
[unix]$ sudo apt-get -u dselect-upgrade

This is great because its easy for everyone to get their environment set up by putting this in a Makefile. The challenge is how to restore their environment when the project is done. How do you uninstall all of the PACKAGES (and their unused dependencies) if you want to clean the environment? Is there an equivalent approach to remove a list of packages from the command line?

share|improve this question
up vote 2 down vote accepted

Like so...

sudo apt-get remove $(cat packages.txt)
  • But how do you determine if any of the packages in the file was not already installed on the system or added later from another bit of software? Removing it might break other programs ;) You probably need to remove them one at the time and also check if you can delete them without un-installing any other program.
share|improve this answer
good point on not removing the software if it was already installed. was hoping to avoid the cat call, but thanks! – dino May 14 '13 at 21:47

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.