File: xorp_install.bash

package info (click to toggle)
xorp 1.8.5-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 28,560 kB
  • ctags: 54,995
  • sloc: cpp: 397,204; sh: 17,490; ansic: 17,029; python: 7,643; lex: 1,632; yacc: 1,474; awk: 956; makefile: 251; perl: 217; sed: 33
file content (101 lines) | stat: -rw-r--r-- 2,905 bytes parent folder | download | duplicates (2)
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