当我尝试安装一个 shell 脚本形式的软件许可证服务器时,出现错误并且真的不知道出路。我在脚本中找不到任何错误。希望有人能给我一些帮助。
#!/bin/ksh
#----------------------------------------------------------------------------
# COPYRIGHT DASSAULT SYSTEMES 2009
#----------------------------------------------------------------------------
# CREATED : 2009/07/06
#----------------------------------------------------------------------------
# Set variables
OSDS=aix_a64
export OSDS
VERSION=`uname -v`
RELEASE=`uname -r`
echo AIX $VERSION.$RELEASE
RC=0
if [[ $VERSION -lt 7 ]] ; then
#----------------------------
# Must be in AIX V7.1.2 or higher
#----------------------------
echo AIX 7.1 TL2 is the minimum required level >&2
RC=1
else
#-------------------------------------------------------------
# 7.1 TL2 (libc 7.1.2.0) is the minimum required level of AIX
#-------------------------------------------------------------
A=`lslpp -Lqc bos.rte.libc |\
awk -F: '{ print "bos.rte.libc",$3
split($3,a,"[.]")
if (a[1]<7 ) exit 1
else if (a[1]==7 && a[2]<1) exit 1
else if (a[1]==7 && a[2]==1 && a[3] < 2) exit 1 }' `
if [[ $? -ne 0 ]] ; then
echo AIX 7.1 TL2 is the minimum required level >&2
RC=1
fi
fi
if [[ $RC = 0 ]] ; then
echo Check Prerequisites for AIX OK
else
echo >&2
echo ERROR : Check Prerequisites for AIX KO >&2
echo >&2
exit $RC
fi
CURPWD=`pwd` || exit 1
[[ $0 = /* ]] && STARTDIR=$0 || STARTDIR=`echo $CURPWD/$0 | sed 's%/\./%/%g'`
START=${STARTDIR##*/}
STARTDIR=${STARTDIR%/*}
export STARTDIR
echo $STARTDIR
for i in $*
do
if [[ $i = -h ]]
then
HELP=TRUE
fi
done
if [[ $HELP = TRUE ]]
then
# Help
${STARTDIR}/DSYLicServINSTB -h
else
# Check root, and perform su if necessary
#----------------------------------------
if [[ `PATH=$PATH:/usr/ucb whoami` = root ]] ; then
:
else
pbsu=$(eval echo \$$#)
if [[ $pbsu = pbsu ]] ; then
echo "Problem when trying to become super-user (root)"
echo "Please try to become super-user by running following commands:"
echo " login root"
echo " cd /"
echo " $STARTDIR/$START $*"
echo
exit 1
fi
echo "Log on as super-user (root) before installing"
echo
su - root -c "$STARTDIR/$START $* pbsu"
exit $?
fi
#Installation
[[ -z $DISPLAY ]] && export DISPLAY=`uname -n`:0
${STARTDIR}/DSYLicServINSTB $*
fi
答案1
这是一个 shell 脚本安装专门为 AIX 编写的许可证服务器(它本身不是许可证服务器)(如脚本本身所述)。
Ubuntu 上的命令uname -v
输出一个文本字符串,例如(在我的 Ubuntu VM 上):
#39-Ubuntu SMP Thu Jan 26 02:27:07 UTC 2017
在 AIX 上,它显然输出了一个可用于第 17 行算术比较的数字:
VERSION=`uname -v`
# ...
if [[ $VERSION -lt 7 ]] ; then
即使您修改了该脚本,您也将无法在 Ubuntu 上运行该脚本。
如果我是您,我会寻找许可证服务器的 Linux 安装说明。如果是Abaqus FLEXnet,那么我认为RedHat/SuSE是支持的。还可以在 Google 上搜索“Abaqus FLEXnet Ubuntu”,看看是否有任何有用的信息。