From time to time there exists a new release of Linux distributions. In order to upgrade you install the new release in parallel to the old one and migrate the user data and system configurations to the new release. Unfortunately you installed software packages in the old release manually. Because they are not standard they are not installed in the new release installation. In general you now have two types of additional software: Software which you like and want to use in the new release also and software which you installed for testing or evaluation puposes only. The distributions offer ways to install all missing software on the new distribution. But it doesn't allow to filter and to exclude test and evaluation packages.
It's not that complicated and you have to compare the rpm listings of both releases and find out which packages are missing in the new release. The you have to go through the list and identify the important packages and reinstall them again. I wrote a short Python Script which compares two rpm listings and creates a list of missing packages. Input for the script is a sorted rpm list of both releases
1) Execute on the old release
rpm -qa | sort > release_old
2) Execute on the new release
rpm -qa | sort > release_new
3) Call the compare scriptand pass a list of packages which should be ignored
compareDistroRPMs release_old release_new "(lib|yast2|sax2|bundle)"
You can download the script here. The last parameter has to be a regular expression. Rule of thumb: Keep the parentheses and add new packages to exclude with |.
Example: To exclude packages with game in their name use "(lib|yast2|sax2|bundle|game)"