Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 
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 
 
Usage:
 
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)" 
Add comment

*** Note ***

Comments are welcome. But in order to reject spam posts please consider following rules:
  1. Comments with string http are rejected with message You have no rights to use this tag
  2. All comments are reviewed by hand and thus it usually takes one day until a comment will be published.