Here is a makefile to do the mon install. Pop it into the mon-99.2 dir when you untar. A "make install" will install everything (alerts, monitors, mon, mon-clients, etc...) into /usr/lib/mon and update the /etc/services file, while a "make uninstall" tries to do the opposite.
There are no dependancy checks done, so you must make sure that the software requirements listed in the INSTALL file are met. If anyone would like to use this, please send me info about bugs. -Tom Scanlan On Tue, 20 Aug 2002, Andrew Ryan wrote: > At 09:48 PM 8/16/02 -0400, Daniel J Urist wrote: > >B) Installation and upgrading are difficult. Some sort of package > >with an install script is sorely needed, and mon needs an appropriate > >default installation setup. > > Installation being more difficult than some of the other packages out there > I agree with. It would be nice if someone would write one. Upgrades, I > haven't experienced much problem with, in fact they've been easy for me, as > long as I've spent the time to test things in advance and stage them. >
PWD:=$(shell pwd) #INSTALLTO=$(PWD)/test-install-root INSTALLTO=/usr/lib/mon CC=gcc CFLAGS=-O2 -Wall -g MANDIR=$(INSTALLTO)/man BINDIR=$(INSTALLTO)/bin ALERTD=$(INSTALLTO)/alert.d MOND=$(INSTALLTO)/mon.d ETCD=$(INSTALLTO)/etc STATED=$(INSTALLTO)/state.d MAN1=$(shell find doc -name "*.1") MAN8=$(shell find doc -name "*.8") ALERTS=$(shell find alert.d -type f ) MONITORS=$(shell find mon.d -type f ) ETC=$(shell find etc -type f ) BIN=$(shell find clients mon utils -type f ) STATE=$(shell find state.d -type f ) ALLFILES= $(MAN1) $(MAN8) $(ALERTS) $(MONITORS) $(ETC) $(BIN) $(STATE) ALLDIRS= $(MANDIR)/man8 $(MANDIR)/man1 $(MANDIR) $(BINDIR) $(MOND) $(ALERTD) $(ETCD) $(STATED) $(INSTALLTO) all: dirs: mkdir -p $(ALLDIRS) touch dirs install: install-docs install-alerts install-monitors install-etc install-bin install-state @if ! egrep -q "^mon .* 2583" /etc/services ; then \ echo "mon 2583/tcp # MON" >> /etc/services; \ echo "mon 2583/udp # MON traps" >> /etc/services; \ fi @echo done! uninstall: uninstall-docs uninstall-alerts uninstall-monitors uninstall-etc uninstall-bin uninstall-state clean cp /etc/services /etc/services.sv egrep -v "^mon .* 2583" /etc/services >/etc/services.tmp mv -f /etc/services.tmp /etc/services clean: -rm -f dirs -rmdir $(ALLDIRS) -rm -f install-docs install-alerts install-monitors install-etc install-bin install-state install-docs: $(MAN1) $(MAN8) dirs set -e;for i in $(MAN1); do install $$i $(MANDIR)/man1/`basename $$i` ; done set -e;for i in $(MAN8); do install $$i $(MANDIR)/man8/`basename $$i` ; done touch install-docs uninstall-docs: set -e;for i in $(MAN1); do rm -f $(MANDIR)/man1/`basename $$i` ; done set -e;for i in $(MAN8); do rm -f $(MANDIR)/man8/`basename $$i` ; done rm -f install-docs install-etc: $(ETC) dirs set -e;for i in $(ETC); do install $$i $(ETCD)/`basename $$i` ; done ln -s $(INSTALLTO)/etc /etc/mon touch install-etc uninstall-etc: set -e;for i in $(ETC); do rm -f $(ETCD)/`basename $$i` ; done rm -f /etc/mon rm -f install-etc install-monitors: $(MONITORS) dirs set -e;for i in $(MONITORS); do install $$i $(MOND)/`basename $$i` ; done touch install-monitors uninstall-monitors: set -e;for i in $(MONITORS); do rm -f $(MOND)/`basename $$i` ; done rm -f install-monitors install-alerts: $(ALERTS) dirs set -e;for i in $(ALERTS); do install $$i $(ALERTD)/`basename $$i` ; done touch install-alerts uninstall-alerts: set -e;for i in $(ALERTS); do rm -f $(ALERTD)/`basename $$i` ; done rm -f install-alerts install-bin: $(BIN) dirs set -e;for i in $(BIN); do install $$i $(BINDIR)/`basename $$i` ; done touch install-bin uninstall-bin: set -e;for i in $(BIN); do rm -f $(BINDIR)/`basename $$i` ; done rm -f install-bin install-state: $(STATE) dirs set -e;for i in $(STATE); do install $$i $(STATED)/`basename $$i` ; done touch install-state uninstall-state: set -e;for i in $(STATE); do rm -f $(STATED)/`basename $$i` ; done rm -f install-state .PHONY : clean