===== Find latest version of RPM packages =====
Howto find the latest version of an RPM package.
Using one argument to specify the RPM package path.
[root@nimsrv]/root/scripts# cat find_latest_rpm.sh
#!/usr/bin/ksh
# set -x
##################################################
#@(#) Find latest version of RPM packages
# on AIX coreutils is required
##################################################
# v1.1 02-05-2017
##################################################
dir=`dirname $0`
if [ -f $dir/.env ]
then
. $dir/.env
else
path_script=$dir
export sn=`basename $0 | cut -d. -f1`
export logpath=/tmp
export logname=$logpath/$sn.log
fi
rpmpath=$1
SORT_BIN='/opt/freeware/bin/sort'
tmppath=$rpmpath/tmp
#------------------------------------------------
move_latest_rpm ()
{
# List and move latest packages
cd $rpmpath
mkdir -p $tmppath
mv *.rpm $tmppath
for rpm in $(ls $tmppath/*.rpm | rev | cut -d'-' -f3- | rev | sort -u)
do
latest=$(ls $rpm-[0-9]* | $SORT_BIN --version-sort | tail -1)
echo $latest
mv $latest $rpmpath
done
}
#############################################
# main
#############################################
# Read and check scripts arguments
if [ $# -ne 1 ]
then
echo "One parameter is required, add the path of the RPM directory packages"
exit 1
fi
if [ ! -x $SORT_BIN ]
then
echo "Please install first the rpm package : coreutils"
exit 1
fi
move_latest_rpm | tee $logname 2>&1