mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-25 09:55:38 +00:00
50_Signalbot: installer bugfix for corner case and enhancements for Java
git-svn-id: https://svn.fhem.de/fhem/trunk@26509 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
44c9fe6827
commit
742f676e0f
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#$Id:$
|
||||
SCRIPTVERSION="3.11"
|
||||
SCRIPTVERSION="3.12"
|
||||
# Author: Adimarantis
|
||||
# License: GPL
|
||||
#Install script for signal-cli
|
||||
@ -18,29 +18,32 @@ TMPFILE=/tmp/signal$$.tmp
|
||||
DBVER=0.22
|
||||
OPERATION=$1
|
||||
JAVACMD=java
|
||||
JAVA_VERSION=17.0
|
||||
JDK_PACKAGE=openjdk-17-jre-headless
|
||||
JAVA_NATIVE=yes
|
||||
|
||||
#Check if Java 17 installation is available for this system
|
||||
J17=`apt-cache search --names-only 'openjdk-17-jdk-headless'`
|
||||
JDK_VER=`apt-cache search --names-only $JDK_PACKAGE`
|
||||
if ! [ "$JAVA_HOME" = "" ]; then
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
JAVA_NATIVE=no
|
||||
fi
|
||||
if [ -e "/opt/java" ]; then
|
||||
if [ -e "/opt/java/bin/java" ]; then
|
||||
JVER=`/opt/java/bin/java --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||
if [ "$JVER" = "17.0" ]; then
|
||||
if [ "$JVER" = "$JAVA_VERSION" ]; then
|
||||
JAVACMD="/opt/java/bin/java"
|
||||
export JAVA_HOME="/opt/java"
|
||||
JAVA_NATIVE=no
|
||||
fi
|
||||
fi
|
||||
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||
if [ "$J17" != "" ] || [ "$JVER" = "17.0" ]; then
|
||||
VEXT="-Linux"
|
||||
JAVA_VERSION=17.0
|
||||
NATIVE_JAVA17=yes
|
||||
else
|
||||
echo "Warning: No Java17 found - will try experimental download of a Java 17 package"
|
||||
JAVA_VERSION=17.0
|
||||
NATIVE_JAVA17=no
|
||||
VEXT=
|
||||
if [ "$JDK_VER" == "" ]; then
|
||||
JAVA_NATIVE=no
|
||||
if [ "$JVER" != "$JAVA_VERSION" ]; then
|
||||
JAVA_NATIVE=download
|
||||
echo "Warning: No Java $JAVA_VERSION found - will try download of a Java $JAVA_VERSION package"
|
||||
JAVACMD="/opt/java/bin/java"
|
||||
fi
|
||||
fi
|
||||
|
||||
#Get OS data
|
||||
@ -110,7 +113,6 @@ install_by_file() {
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
check_and_create_path() {
|
||||
#Check if path is available and create of not
|
||||
CHECK=$1
|
||||
@ -207,7 +209,8 @@ echo "Signal version: $SIGNALVERSION"
|
||||
echo "System library path: $LIBPATH"
|
||||
echo "System architecture: $ARCH"
|
||||
echo "System GLIBC version: $GLIBC"
|
||||
echo "Using Java version: $JAVA_VERSION ($JAVACMD)"
|
||||
echo "Using Java version: $JAVACMD"
|
||||
echo "Native Java $JAVA_VERSION $JAVA_NATIVE (current version:$JVER)"
|
||||
fi
|
||||
|
||||
check_and_update() {
|
||||
@ -278,49 +281,59 @@ else
|
||||
echo 'created'
|
||||
fi
|
||||
|
||||
echo -n "Checking system Java version ... "
|
||||
if [ "$JAVA_NATIVE" = "download" ]; then
|
||||
echo -n "Downloading Java from adoptium..."
|
||||
cd /opt
|
||||
JAVA_ARC=OpenJDK17U-jre_$ARCHJ\_linux_hotspot_17.0.4.1_1.tar.gz
|
||||
wget -qN https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/$JAVA_ARC
|
||||
|
||||
if [ -z $JAVA_ARC ]; then
|
||||
echo "failed"
|
||||
exit
|
||||
fi
|
||||
echo "successful"
|
||||
echo -n "Unpacking ..."
|
||||
tar zxf $JAVA_ARC
|
||||
rm -rf /opt/java
|
||||
mv jdk* java
|
||||
rm $JAVA_ARC
|
||||
echo "done"
|
||||
JAVA_NATIVE=no
|
||||
export JAVA_HOME=/opt/java
|
||||
fi
|
||||
|
||||
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||
echo $JVER
|
||||
if [ "$JVER" != "17.0" ] && [ $NATIVE_JAVA17 = "yes" ]; then
|
||||
echo -n "Installing openjdk-17-jre-headless..."
|
||||
apt-get -q -y install openjdk-17-jre-headless >>$LOG
|
||||
JVER=`java --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||
if [ "$JVER" = "17.0" ]; then
|
||||
if [ "$JAVA_NATIVE" = "yes" ] && [ "$JVER" != "$JAVA_VERSION" ]; then
|
||||
PKG=$(dpkg-query -W --showformat='${Status}\n' $JDK_PACKAGE | grep "install")
|
||||
if [ -z "$PKG" ]; then
|
||||
echo -n "Installing $JDK_PACKAGE..."
|
||||
apt-get -q -y install $JDK_PACKAGE >>$LOG
|
||||
else
|
||||
echo "$JDK_PACKAGE already installed but Java $JVER found. Please use"
|
||||
echo "sudo update-alternatives --config java"
|
||||
echo "to activate Java $JAVA_VERSION or set your JAVA_HOME environment variable"
|
||||
exit
|
||||
fi
|
||||
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||
if [ "$JVER" = "$JAVA_VERSION" ]; then
|
||||
echo "done"
|
||||
else
|
||||
echo "failed"
|
||||
echo "Error: Installation of $JDK_PACKAGE not successful"
|
||||
echo "Please try manually and restart installation once successful"
|
||||
echo "sudo apt-get install $JDK_PACKAGE"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! [ "$JVER" = "17.0" ]; then
|
||||
if ! [ "$JAVA_VERSION" = "$JVER" ]; then
|
||||
if [ -e /opt/java ]; then
|
||||
echo -n "Checking for Java in /opt/java ... "
|
||||
JVER=`/opt/java/bin/java --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||
echo $JVER
|
||||
fi
|
||||
if ! [ "$JVER" = "$JAVA_VERSION" ]; then
|
||||
echo "Java version mismatch - version $JAVA_VERSION required"
|
||||
echo -n "Download from adoptium.net (this can take a while) ..."
|
||||
cd /tmp
|
||||
JAVA_ARC=OpenJDK17U-jdk_$ARCHJ\_linux_hotspot_17.0.1_12.tar.gz
|
||||
wget -qN https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/$JAVA_ARC
|
||||
if [ -z $JAVA_ARC ]; then
|
||||
echo "failed"
|
||||
exit
|
||||
fi
|
||||
echo "successful"
|
||||
cd /opt
|
||||
echo -n "Unpacking ..."
|
||||
tar zxf /tmp/$JAVA_ARC
|
||||
rm -rf /opt/java
|
||||
mv jdk* java
|
||||
rm /tmp/$JAVA_ARC
|
||||
echo "done"
|
||||
fi
|
||||
export JAVA_HOME=/opt/java
|
||||
fi
|
||||
#Final check
|
||||
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||
if ! [ "$JVER" = "$JAVA_VERSION" ]; then
|
||||
echo "Error: Java $JVER found, but Java $JAVA_VERSION required"
|
||||
echo "Something went wrong that this script cannot resolved - please fix manually"
|
||||
exit
|
||||
else
|
||||
echo "Checking for Java $JAVA_VERSION...successful"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -357,7 +370,7 @@ if [ $NEEDINSTALL = 1 ]; then
|
||||
stop_service
|
||||
cd /tmp
|
||||
echo -n "Downloading signal-cli $SIGNALVERSION..."
|
||||
wget -qN https://github.com/AsamK/signal-cli/releases/download/v$SIGNALVERSION/signal-cli-$SIGNALVERSION$VEXT.tar.gz -O signal-cli-$SIGNALVERSION.tar.gz
|
||||
wget -qN https://github.com/AsamK/signal-cli/releases/download/v$SIGNALVERSION/signal-cli-$SIGNALVERSION-Linux.tar.gz -O signal-cli-$SIGNALVERSION.tar.gz
|
||||
if ! [ -e signal-cli-$SIGNALVERSION.tar.gz ]; then
|
||||
echo "failed"
|
||||
exit
|
||||
|
Loading…
x
Reference in New Issue
Block a user