Ubuntu: Comparing my version with the clean install


I've been using and upgrading Ubuntu since the version 9. Of course, I have 13.04 now and after installing a clean 13.04 to another computer, I've noticed quite a few differences (plymouth, lightdm, some software behaves differently, etc.). I've done quite a few customizations during the period so it's probably due to that.

So I wonder if there is a way to see what's different between my and the clean version. Not the complete file list diff, but perhaps software package differences (synaptic?) or something that will be easier to read and compare. Is there a way?


You could compare the list of installed package with the ".manifest" file of your distribution,

For instance the manifest of 13.04/i386 can be found here :


To get your installed packages :

#aptitude search ~i \!~M  

Regarding the customization you could have made there is a tool that can helps you to compare the modified configuration files against the package checksum informations : debsums

#debsums -ce   

(-e to check only the configuration files, -c only the changed files)

Edit :

the packages installed during the year are logged in /var/log/apt. Older history logs are deleted by logrotate. I made that script to get the installed package (take care not to modify the awk patterns when copying).

# cd /var/opt/log  #(zcat $(ls -rt history*gz); cat history.log ) | awk '   /^Commandline: (apt-get install|synaptic|aptitude)/{            cmdl=$0            getline           if(/^Install|^Remove/) {              print cmdl              print           }    }' | less  


The following script can be used to compare the list of installed package with the ".manifest" file for a distribution. I developed it with "ubuntu-16.04.1-desktop-amd64.manifest" against a Ubuntu 16.04.1 LTS instance having a number of packages added and removed.

#!/bin/bash    # The first parameter to this script is the manifest file name.    # Take the first column of the manifest. This is the name of the  # package without version information.  cut --fields=1 $1 | \      sort > \           manifestpkglist.tmp    # Get the list of packages installed on this sysem. Packages with  # deinstalled status are ignored. Only the first column of the output  # having the package names is considered.  dpkg --get-selections | \      grep --invert-match deinstall | \      cut --fields=1 | \      sort > \           installedpkglist.tmp    # Report the differences.  diff --side-by-side \       --suppress-common-lines \       manifestpkglist.tmp \       installedpkglist.tmp    # Remove the intermediate files.  rm --force \     manifestpkglist.tmp \     installedpkglist.tmp  

The script takes the manifest file as input. To run it, make the script executable $ chmod u+x manifest-diff.sh and execute by passing in the manifest file name as the first parameter: $ ./manifest-diff.sh ubuntu-16.04.1-desktop-amd64.manifest

A limitation of this script is that it does not make a distinction between packages that were explicitly installed and those that were added to fulfill dependencies. Presumably, such information is available on the system as it must be needed for the autoremove feature of the package manager. A better script would incorporate that information.


For some reason the "!~M" pattern revoked the "~i" pattern, so I got all the packages (including the never-installed ones).

if you do a

# aptitude search ~i

it all works.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »