{"id":1872,"date":"2012-01-19T10:29:30","date_gmt":"2012-01-19T15:29:30","guid":{"rendered":"http:\/\/appcrawler.com\/wordpress\/?p=1872"},"modified":"2012-01-20T09:57:07","modified_gmt":"2012-01-20T14:57:07","slug":"comparing-rpms-between-servers","status":"publish","type":"post","link":"http:\/\/appcrawler.com\/wordpress\/2012\/01\/19\/comparing-rpms-between-servers\/","title":{"rendered":"Comparing RPM&#8217;s between servers"},"content":{"rendered":"<p>Periodically, I will want to compare the RPM installations between two or more servers.  Sometimes, I may not care about the specific versions of each RPM, but only that *some* version exists.  To do this, I can use awk and print only the name of the RPM up to but not including where the version number begins.<\/p>\n<p>First, we show the versions with a normal rpm -qa command&#8230;<\/p>\n<pre lang=\"text\">\r\nCMHLDEVPSOFT01:oracle:fn9dev:\/home\/oracle>rpm -qa | head -10\r\ntzdata-2011g-1.el5\r\nexpat-1.95.8-8.3.el5_5.3\r\nlibusb-0.1.12-5.1\r\ngdbm-1.8.0-26.2.1\r\nprocps-3.2.7-17.el5\r\nlibIDL-0.8.7-1.fc6\r\nlibksba-1.0.5-2.el5\r\nlibtevent-0.9.8-10.el5\r\nless-436-7.el5\r\neject-2.1.5-4.2.el5\r\nCMHLDEVPSOFT01:oracle:fn9dev:\/home\/oracle>\r\n<\/pre>\n<p>&#8230;and then show how we can strip the version information from the RPM name&#8230;<\/p>\n<pre lang=\"text\">\r\nCMHLDEVPSOFT01:oracle:fn9dev:\/home\/oracle>rpm -qa | awk -F \"-\" '{i=1;while (i <= NF) {if ($i !~ \/'^[0-9]'\/) {if(i==1) {s=$i} else{s=s\"-\"$i};i++}else{print s;s=\"\";next}}}' | head -10\r\ntzdata\r\nexpat\r\nlibusb\r\ngdbm\r\nprocps\r\nlibIDL\r\nlibksba\r\nlibtevent\r\nless\r\neject\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Periodically, I will want to compare the RPM installations between two or more servers. Sometimes, I may not care about the specific versions of each RPM, but only that *some* version exists. To do this, I can use awk and&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/appcrawler.com\/wordpress\/2012\/01\/19\/comparing-rpms-between-servers\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[28,27],"tags":[],"_links":{"self":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/1872"}],"collection":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/comments?post=1872"}],"version-history":[{"count":6,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/1872\/revisions"}],"predecessor-version":[{"id":1952,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/1872\/revisions\/1952"}],"wp:attachment":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/media?parent=1872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/categories?post=1872"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/tags?post=1872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}