|
|
1.1 root 1: #!/bin/sh
2: # TrueCrypt install script
3:
1.1.1.4 ! root 4: BIN_DIR=/usr/bin
! 5: MAN_DIR=/usr/share/man
! 6: SHARE_DIR=/usr/share/truecrypt
! 7: SHARE_DIR_DEF=$SHARE_DIR
1.1 root 8: MOD_DIR=/lib/modules/$(uname -r)/extra
1.1.1.2 root 9: BIN_PERM=755
1.1 root 10:
11: umask 022
12:
13: error ()
14: {
15: echo "Error: $*" >&2
16: }
17:
18: # Prerequisites
19:
20: echo "Checking installation requirements..."
21:
22: [ $(id -u) -ne 0 ] && error "Administrator (root) privileges required" && exit 1
23:
24: if ! modprobe -V >&- 2>&- || ! rmmod -V >&- 2>&-
25: then
26: error "modprobe or rmmod not found. TrueCrypt requires kernel module tools."
27: exit 1
28: fi
29:
30: if [ ! -c /dev/mapper/control -a ! -L /dev/mapper/control ]
31: then
32: echo -n "/dev/mapper/control not found - create? [Y/n]: "
33: read A
34: if [ "$A" = "" -o "$A" = "y" -o "$A" = "Y" ]
35: then
36: mkdir /dev/mapper 2>/dev/null && chmod 755 /dev/mapper
37: mknod -m 600 /dev/mapper/control c 10 63
38: fi
39: fi
40:
1.1.1.3 root 41: lsmod | grep -q ^dm_mod
42: [ $? -ne 0 ] && modprobe dm-mod >&- 2>&- && sleep 1
1.1 root 43:
1.1.1.3 root 44: if ! dmsetup targets >&-
1.1 root 45: then
46: error "TrueCrypt requires device mapper tools (dmsetup) 1.00.08 or later."
47: exit 1
48: fi
49:
50: if [ ! -b /dev/loop0 -a ! -b /dev/loop/0 -a ! -b /dev/loop1 ]
51: then
52: echo -n "No loopback device found - create? [Y/n]: "
53: read A
54: if [ "$A" = "y" -o "$A" = "Y" ]
55: then
56: for I in 0 1 2 3 4 5 6 7
57: do
58: mknod -m 600 /dev/loop$I b 7 $I
59: done
60: fi
61: fi
62:
1.1.1.4 ! root 63: if [ $(losetup 2>&1 | wc -l) -lt 2 ]
! 64: then
! 65: echo "Warning: losetup command not found - mounting of containers may fail."
! 66: fi
! 67:
1.1 root 68: rmmod truecrypt >&- 2>&-
69: if grep -q "^truecrypt " /proc/modules
70: then
71: error "Please dismount all mounted TrueCrypt volumes first."
72: exit 1
73: fi
74:
75:
76: # Build
77:
78: if [ ! -f Kernel/truecrypt.ko -o ! -f Cli/truecrypt ]
79: then
80: ./build.sh
81: [ $? -ne -0 ] && error "Build failed - installation aborted" && exit 1
82: fi
83:
84:
85: # Test
86:
87: echo -n "Testing truecrypt... "
88: ./Cli/truecrypt --test >/dev/null 2>/dev/null
1.1.1.2 root 89: [ $? -ne 0 ] && echo "FAILED" && exit 1
1.1 root 90: echo Done.
91:
92:
93: # Installation
94:
95: echo
96: echo -n "Install binaries to [$BIN_DIR]: "
97: read A
98: [ "$A" ] && BIN_DIR=$A
1.1.1.3 root 99: [ ! -d "$BIN_DIR" ] && error "$BIN_DIR does not exist" && exit 1
1.1 root 100:
101: echo -n "Install man page to [$MAN_DIR]: "
102: read A
103: [ "$A" ] && MAN_DIR=$A
1.1.1.3 root 104: [ ! -d "$MAN_DIR/man1" ] && error "$MAN_DIR/man1 does not exist" && exit 1
1.1 root 105: MAN_DIR=$MAN_DIR/man1
106:
1.1.1.4 ! root 107: echo -n "Install user guide and kernel module to [$SHARE_DIR]: "
! 108: read A
! 109: [ "$A" ] && SHARE_DIR=$A
! 110: mkdir -p "$SHARE_DIR/doc" 2>&- || exit 1
! 111:
! 112:
1.1 root 113: echo -n "Allow non-admin users to run TrueCrypt [y/N]: "
114: read A
1.1.1.3 root 115: [ "$A" = "y" -o "$A" = "Y" ] && BIN_PERM=4755
1.1 root 116:
117: echo -n "Installing kernel module... "
118: # make "KERNEL_SRC=$KERNEL_SRC" install >/dev/null
1.1.1.3 root 119: mkdir "$MOD_DIR" 2>&- # some distributions omit extra directory
120: cp Kernel/truecrypt.ko "$MOD_DIR" && chmod 600 $MOD_DIR/truecrypt.ko && depmod -a
1.1 root 121: [ $? -ne 0 ] && error "Failed to install kernel module" && exit 1
122: echo Done.
123:
124: echo -n "Installing truecrypt to $BIN_DIR... "
125: cp Cli/truecrypt "$BIN_DIR" && chown root:root "$BIN_DIR/truecrypt" && chmod $BIN_PERM "$BIN_DIR/truecrypt"
126: [ $? -ne 0 ] && error "Failed to install truecrypt" && exit 1
127: echo Done.
128:
1.1.1.4 ! root 129: echo -n "Installing man page to $MAN_DIR... "
1.1 root 130: cp Cli/Man/truecrypt.1 "$MAN_DIR" && chown root:root "$MAN_DIR/truecrypt.1" && chmod 644 "$MAN_DIR/truecrypt.1"
131: [ $? -ne 0 ] && error "Failed to install truecrypt man page" && exit 1
132: echo Done.
133:
1.1.1.4 ! root 134: echo -n "Installing user guide to $SHARE_DIR/doc... "
! 135: cp ../License.txt "$SHARE_DIR/doc" && cp "../Release/Setup Files/TrueCrypt User Guide.pdf" "$SHARE_DIR/doc/TrueCrypt-User-Guide.pdf"
! 136: [ $? -ne 0 ] && error "Failed to install truecrypt user guide" && exit 1
! 137: chmod 644 "$SHARE_DIR/doc/License.txt" "$SHARE_DIR/doc/TrueCrypt-User-Guide.pdf"
! 138: echo Done.
! 139:
! 140: if [ "$SHARE_DIR" = "$SHARE_DIR_DEF" ]
! 141: then
! 142: echo -n "Installing backup kernel module to $SHARE_DIR/kernel... "
! 143: mkdir -p "$SHARE_DIR/kernel" 2>&-
! 144: M=$SHARE_DIR/kernel/truecrypt-$(uname -r | cut -d- -f1 | cut -d. -f1-3).ko
! 145: cp Kernel/truecrypt.ko "$M" || exit 1
! 146: echo Done.
! 147: fi
! 148:
1.1 root 149: exit 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.