Setting up new servers can be a pain if you're not able to clone them from a server that is known to be working. Many VPS providers, like Slicehost, allow you to clone a system to a new system. Without that option, you can pull a list of RPM's without their version number for a fairly quick and basic comparison.
First, pull a list of RPM package by name only:
rpm -qa --queryformat='%{NAME}\n' | sort > server.txtOnce you've done that on both servers, just use diff to compare the two files:
diff serverold.txt servernew.txt

I used to use this apps for difference between two rpm packages :
http://ftp.wl0.org/rpmdiff/rpmdiff
dunno if it still works
Another thing to note is that depending on how much the lists differe.... that diff could be a bit hard to follow. I'd probably opt to do something like:
for p in $(cat serverold.txt) ; do grep $p servernew.txt >/dev/null || echo $p ; done
Just getting a flat list of missing packages is the idea (that you could then pass to up2date/yum maybe...
I found this very helpful but the output was a bit messy. A quick fix is to only look at the lines which begin with ">".
diff serverold.txt servernew.txt > diff.txt
cat diff.txt | grep ">"
Hope this helps someone!
nice tip.
This is really help full...may be some can post you to install missing RPM's in single command:)