User Tools

Site Tools


aix:find_latest_rpm

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
aix/find_latest_rpm.txt · Last modified: 2021/01/01 21:21 (external edit)