#!/bin/bash MATCHLIST=$(tempfile) FILELIST=$(tempfile) TEMPLIST=$(tempfile) if [ -z $1 ]; then echo "DUDE!!! You must point me to a package log.." echo "Those from /var/log/packages/, you know?" exit 127 fi for i in $(grep \/ $1 | grep -v LOCATION); do j="/$i" file $j | grep "executable" | grep ELF | cut -f 1 -d : >> $FILELIST file $j | grep "shared object" | grep ELF | cut -f 1 -d : >> $FILELIST done for i in $(cat $FILELIST); do objdump -p $i | grep NEEDED | cut -d ' ' -f 18 >> $TEMPLIST done # Sort and strip out dublicates to speed up grepping /var/log/packages/* cat $TEMPLIST | sort -u > $MATCHLIST # Find the relevant packages, and make sure a package dont show up as depending on itself... grep -l -f $MATCHLIST /var/log/packages/* | grep -v $(basename $1) echo Matchlist $MATCHLIST, Filelist $FILELIST