Compare packages (RPMs) installed on multiple systems
Perl
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
COPYING
README.md
rpmscomp

README.md

rpmscomp

NAME

rpmscomp - compare RPMs installed on multiple systems, or compare versus previously recorded list of installed packages

SYNOPSIS

rpmscomp [OPTION]... [[USER]@HOST]... [FILE]...
rpmscomp --record [OPTION]... [[USER]@HOST]...

DESCRIPTION

Compare the RPMs installed on the specified systems and/or recorded within the specified files.

General Options

-d, --diffonlyOnly list differences
-h, --help Print a help message and exit
-r, --recordRecord mode (record installed RPMs for later)
-v, --verboseVerbose mode

Record Mode Options

-f, --forceForce overwrite of output files
-o, --outputWrite a list of installed RPMs to this file name. If multiple HOSTs are specified, this specifies a prefix, and the host name will be appended.

Specifying Hosts and Files

If you specify a host as @HOST, rpmscomp will ssh to HOST in order to determine what RPMs are installed on that host.

If you specify a host as USER@HOST, rpmscomp will ssh to HOST as USER in order to determine what RPMs are installed on that host.

If you provide an argument that doesn't begin with @, rpmscomp will assume this is a file name containing a previously recorded list of RPMs installed on some host.

If you specify no hosts in --record mode, rpmscomp will assume you want to record the RPMs installed on @localhost.

if you specify only a single host in normal (compare) mode, rpmscomp will assume you want to compare versus @localhost.

You can specify as many hosts and/or files as you want to compare (there is no hard limit other than what may be imposed by the amount of memory in your systems).

EXAMPLES

rpmscomp @server1

This will ssh to server1, retrieve a list of all the RPMs installed on that host, then print out a comparison of the RPMs installed on server1 versus the local host.

rpmscomp @server1 @server2

This will ssh to server1 and server2, retrieve a list of all the RPMs installed on each host, then print out a comparison of the RPMs installed on both hosts.

rpmscomp --diffonly @server1 @server2

This will ssh to server1 and server2, retrieve a list of all the RPMs installed on each host, then print out a comparison of the RPMs installed on both hosts, but only showing RPMs where the installed version, release, or architecture(s) differ between the hosts.

rpmscomp user1@server1 user2@server2

This will ssh to server1 as user1, ssh to server2 as user2, retrieve a list of all the RPMs installed on each host, then print out a comparison of the RPMs installed on both hosts.

rpmscomp @server1 @server2 @server3 @server4 @server5 @server6

This will ssh to server1 through server6, retrieve a list of all the RPMs installed on each host, then print out a comparison of the RPMs installed on both hosts.

rpmscomp --record @server1 @server2

This will ssh to server1 and server2, retrieve a list of all the RPMs installed on each host, and record that information in files (server1 for the server1 list and server2 for the server2 list). If a file that would be written to already exists, it will not be overwritten.

rpmscomp --record --force @server1 @server2

This will ssh to server1 and server2, retrieve a list of all the RPMs installed on each host, and record that information in files (server1 for the server1 list and server2 for the server2 list). If a file that would be written to already exists, it will be overwritten.

rpmscomp --record --output server1.2013-01-01 @server1

This will ssh to server1, retrieve a list of all the RPMs installed on that host, and record that information in the file server1.2013-01-01. If the file that would be written to already exists, it will not be overwritten.

rpmscomp --record --output myprefix @server1 @server2

This will ssh to server1 and server2, retrieve a list of all the RPMs installed on each host, and record that information in files (myprefix.server1 for the server1 list and myprefix.server2 for the server2 list). If a file that would be written to already exists, it will not be overwritten.

rpmscomp myprefix.server2 @server2

This will retrieve a previously stored list of RPMs installed from the file myprefix.server2, then ssh to server2, retrieve a list of all the RPMs installed on that host, then print out a comparison of the RPMs lisetd in myprefix.server2 versus those currently installed on server2.

COPYRIGHT AND LICENSE

Copyright (C) 2013, Paul Waterman

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.