1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
#!/bin/bash
# Usage: cd /usr/local/xorp; ./xorp_install.bash
#
# This will create the xorp user, attempt to fix up the
# group configure properly, and also attempt to soft-link
# some libraries to help binaries compiled on other OS versions
# to work on the target systems.
# Xorp should be un-tarred in /usr/local
if [ `pwd` != "/usr/local/xorp" ]
then
echo ""
echo "ERROR: You must un-tar xorp.tgz in /usr/local so that the files"
echo " are placed in /usr/local/xorp, and this script must be run from"
echo " the /usr/local/xorp directory."
exit 1
fi
# Add xorp user and group
#Check for adduser commands
adduserArgs=""
if adduser -h 2>&1 | grep ".--system" > /dev/null 2>&1
then
adduserArgs="$adduserArgs --system"
fi
if adduser -h 2>&1 | grep ".--no-create-home" > /dev/null 2>&1
then
adduserArgs="$adduserArgs --no-create-home"
fi
echo "Creating xorp user and adding xorp to xorp and root groups..."
adduser $adduserArgs xorp
usermod -a -G xorp xorp
usermod -a -G xorp root
usermod -a -G xorp lanforge
usermod -a -G root xorp
# Xorp may have been compiled on older systems and thus have dependencies
# on older libraries. Often, we can just link to newer ones and things
# work fine.
for i in `ldd ./sbin/* ./lib/xorp/sbin/*|grep "not found"|cut -f1 -d" "|sort|uniq`
do
echo "Missing library: $i"
extension=(`expr match "$i" '.*\([0-9]\)'`);
filename=${i%$extension}
#echo "base: $filename extension: $extension"
while [ $extension -lt 20 ]
do
#echo "extension: $extension"
let extension++
if uname -a|grep x86_64 > /dev/null 2>&1
then
if [ -f /lib64/$filename$extension ]
then
echo "Linking: /lib64/$filename$extension to /lib64/$i"
ln -s /lib64/$filename$extension /lib64/$i
break
fi
if [ -f /usr/lib64/$filename$extension ]
then
echo "Linking: /usr/lib64/$filename$extension to /usr/lib64/$i"
ln -s /usr/lib64/$filename$extension /usr/lib64/$i
break
fi
else
if [ -f /lib/$filename$extension ]
then
echo "Linking: /lib/$filename$extension to /lib/$i"
ln -s /lib/$filename$extension /lib/$i
break
fi
if [ -f /usr/lib/$filename$extension ]
then
echo "Linking: /usr/lib/$filename$extension to /usr/lib/$i"
ln -s /usr/lib/$filename$extension /usr/lib/$i
break
fi
fi
done
done
echo "Completed installation setup for Xorp, testing library linkage...."
if /usr/local/xorp/sbin/xorpsh -h > /dev/null 2>&1
then
echo ""
echo "SUCCESS: Xorpsh seems to work fine..."
else
echo ""
echo "ERROR: xorpsh returned error code. Please contact support."
echo " You are probably missing some libraries, perhaps older versions"
echo " of ones existing on your system. The command:"
echo " ldd /usr/local/xorp/sbin/xorpsh"
echo " might help you figure out which ones are missing."
fi
|