You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
4.4 KiB
178 lines
4.4 KiB
#!/bin/bash
|
|
|
|
suse_os(){
|
|
install_log="$ldir/os-install.log";
|
|
failed=0;
|
|
prefix="sudo";
|
|
packages="";
|
|
|
|
echo -n >"$install_log" &2>/dev/null;
|
|
|
|
echo -e "$w_l\n INSTALLATION\n ============\n";
|
|
|
|
suse_version=$(grep VERSION= /etc/os-release 2>/dev/null | sed -n 's/^[^0-9]*\([0-9][0-9]*\).*$/\1/p');
|
|
|
|
sshpass_src="ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/sshpass-1.05-1.el6.rf.x86_64.rpm";
|
|
sshpass86_src="ftp://rpmfind.net/linux/dag/redhat/el6/en/i386/dag/RPMS/sshpass-1.05-1.el6.rf.i686.rpm";
|
|
|
|
if [[ "$suse_version" ]]; then
|
|
[ "$suse_version" -lt 12 ] && { echo -e "$r_l This system is not supported anymore!\n"; return 1; }
|
|
[ "$suse_version" -gt 13 ] && [ "$suse_version" -lt 42 ] && echo -e "$r_l This installer is still in the testing stage!";
|
|
[ "$suse_version" -gt 42 ] && echo -e "$r_l This installer is still in the testing stage!";
|
|
else
|
|
echo -e "$r_l System not recognised -> Abort!\n"; return 1;
|
|
fi
|
|
|
|
# without sudo no user installation allowed
|
|
hash sudo 2>/dev/null || { [ "$(whoami)" != "root" ] && { echo -e "$r_l You need to be root for that!\n"; return 1; } }
|
|
|
|
# root needs no sudo
|
|
[ "$(whoami)" == "root" ] && prefix="";
|
|
|
|
# check for sufficient repositories - SLES & SLED need an additional "SUSE Linux Enterprise Software Development Kit"
|
|
if grep "Enterprise" /etc/os-release >/dev/null; then
|
|
echo -n -e "$w_l SUSE Linux Enterprise detected$g_l check for SDK repository...";
|
|
if ! zypper wp subversion >/dev/null; then
|
|
echo -e "$r_l\n You need to install \"SUSE Linux Enterprise Software Development Kit\" first!\n Get it from https://download.suse.com\n"; return 1;
|
|
fi
|
|
echo -e "$y_l ok";
|
|
fi
|
|
|
|
for e in "${binvars[@]}";
|
|
do
|
|
if ! hash "$e" 2>/dev/null; then
|
|
inst="$e";
|
|
case $e in
|
|
svn)
|
|
inst="subversion";
|
|
;;
|
|
xz)
|
|
inst="xz-utils";
|
|
;;
|
|
makeinfo)
|
|
inst="texinfo";
|
|
;;
|
|
python3-config)
|
|
inst="python3-devel";
|
|
;;
|
|
libtoolize)
|
|
inst="libtool";
|
|
;;
|
|
libtool)
|
|
inst="libtool-bin";
|
|
;;
|
|
g++)
|
|
inst="gcc-c++";
|
|
;;
|
|
gettext)
|
|
inst="gettext-tools";
|
|
;;
|
|
composite)
|
|
inst="ImageMagick";
|
|
;;
|
|
cmp)
|
|
inst="diffutils";
|
|
;;
|
|
esac;
|
|
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
|
|
packages="$packages $inst";
|
|
fi;
|
|
done;
|
|
|
|
for e in "${headervars[@]}";
|
|
do
|
|
e1=$(find /usr/include/* |grep -m1 "$e");
|
|
if [ ! ${#e1} -gt 8 ]; then
|
|
case $e in
|
|
crypto.h)
|
|
inst="libopenssl-devel";
|
|
;;
|
|
libusb.h)
|
|
inst="libusb-1_0-devel";
|
|
;;
|
|
pcsclite.h)
|
|
inst="pcsc-lite-devel";
|
|
;;
|
|
pthread.h)
|
|
inst="glibc-devel";
|
|
;;
|
|
ncurses)
|
|
inst="ncurses-devel";
|
|
;;
|
|
libacl.h)
|
|
inst="libacl-devel";
|
|
;;
|
|
sys/capability.h)
|
|
inst="libcap-devel";
|
|
;;
|
|
readline.h)
|
|
inst="readline-devel";
|
|
;;
|
|
glib-2.0/glib.h)
|
|
inst="glib2-devel-32bit";
|
|
;;
|
|
esac;
|
|
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
|
|
packages="$packages $inst";
|
|
fi;
|
|
done;
|
|
|
|
for e in "${libvars[@]}";
|
|
do
|
|
e1=$(find /usr/lib* |grep -m1 "$e");
|
|
if [ ! ${#e1} -gt 8 ]; then
|
|
case $e in
|
|
libccidtwin.so)
|
|
inst="pcsc-ccid";
|
|
;;
|
|
libstdc++.so.6)
|
|
inst="libstdc++6";
|
|
;;
|
|
libc\\.a)
|
|
inst="glibc-static";
|
|
;;
|
|
esac;
|
|
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
|
|
packages="$packages $inst";
|
|
fi;
|
|
done;
|
|
|
|
if [ "$(uname -m)" == "x86_64" ] && [ ! -f /usr/lib/libz.so ]; then
|
|
if [ ! -f /usr/lib/libz.so ]; then
|
|
e="zlib32";
|
|
inst="zlib-devel-32bit glibc-32bit libz1-32bit";
|
|
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
|
|
packages="$packages $inst";
|
|
fi
|
|
fi
|
|
|
|
if [ ${#packages} -gt 0 ]; then
|
|
echo -n -e "$w_l update$g_l package list...";
|
|
echo "+++ $(date): zypper --non-interactive refresh" >> "$install_log"
|
|
$prefix zypper --non-interactive refresh >> "$install_log" 2>&1;
|
|
echo -e "$y_l done";
|
|
echo -n -e "$w_l install$g_l selected packages$y_l please wait...";
|
|
echo "+++ $(date): zypper --non-interactive --ignore-unknown install$packages" >> "$install_log"
|
|
$prefix zypper --non-interactive --ignore-unknown install $packages >> "$install_log" 2>&1 || failed=1;
|
|
if [ $failed == 0 ]; then
|
|
echo -e "$y_l done";
|
|
else
|
|
echo -e "$r_l failed!";
|
|
fi
|
|
fi
|
|
|
|
# additional rpm
|
|
if ! hash sshpass 2>/dev/null; then
|
|
[ "$(arch)" == "i686" ] && sshpass_src=$sshpass86_src;
|
|
echo -e "$w_l install$g_l sshpass$y_l\tfrom: $sshpass_src";
|
|
echo "+++ $(date): rpm -i $sshpass_src" >> "$install_log";
|
|
$prefix rpm -i $sshpass_src >> "$install_log" 2>&1 || failed=1;
|
|
echo -e -n ;
|
|
fi
|
|
|
|
upxversion=(0 0);
|
|
|
|
[ $failed == 1 ] && echo -e "\n$r_l Installation with errors - see: $install_log";
|
|
|
|
return $failed;
|
|
}
|
|
|