rpmstatus - release 0.9.6, Wed Nov 12 10:20:13 CET 2003 ------------------------------------------------------- ABOUT rpmstatus is a Perl script that generates a web-page which shows which RPM packages are installed on client machines. It uses inetd/xinetd and rpm (Red Hat Package Manager) to generate the list. rpmstatus is also able to report store (NTNU) packages when configured to do so. INSTALLATION 1: THE PERL SCRIPT Make sure the Perl line at the top of the script is refering to your Perl installation. If you are unsure, type 'which perl' in a shell and take a look at the output. Take a look at the rpmstatus.conf script. Customize it. Copy the rpmclient to the client machines. I have only tested this script on Redhat Linux, if you don't get it to work on Suse or Mandrake then let me know (send me a patch if necessary!) 2: INETD/XINETD If you are using inetd, add the following line: rpmstatus stream tcp nowait nobody /usr/sbin/tcpd $PATH/rpmclient Where $PATH is the path to the rpmclient script installed on your client. Add to hosts.allow (if you are using hosts.deny at all?! -- you should) rpmclient: $HOSTNAME Where $HOSTNAME is the name of the machine that runs the main rpmstatus script. If you are using xinetd, you can add the following to a file in /etc/xinet.d/: -- start of file # default: on # description: Gives a list of rpm packages to a web-page generator. service rpmstatus { socket_type = stream wait = yes user = nobody server = $PATH/rpmclient server_args = disable = no } -- end of file Where $PATH is the path to the client script. More information is available at Or you can just add everything from service to the } in the /etc/xinetd.conf file. Add rpmstatus to services. The default port is 2985. You may change this if you want to, but then you also need to change this in the main script. At the bottom of /etc/services, add: rpmstatus 2985/tcp 3: THE CRON-JOB. You probably want to run this each night. My cron-job does: 10 6 * * * /home/paalde/project/rpmstatus/rpmstatus ./rpmstatus-its.conf 10 7 * * * /home/paalde/project/rpmstatus/rpmstatus ./rpmstatus-ita.conf This makes it run rpmstatus with two different config files. You should not ru the rpmstatus script as root (You don't have to, so you really shouldn't,) the same goes for the rpmclient which are run as nobody in the configuration above Make sure that the user running rpmstatus are allowed to write the web-page files. 4: TESTING Test the rpmstatus script by typing: ./rpmstatus $CONFIG-FILE Leaving out $CONFIG-FILE it will default to rpmstatus.conf. Usually the problem is the setup of the inetd/xinetd. You can test the setup by typing the following on the machine where the main server runs. telnet $HOSTNAME rpmstatus or telnet $HOSTNAME 2985 The output should be a list of rpm packages on the $HOSTNAME client.