mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-25 16:05:19 +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
|
#!/bin/bash
|
||||||
#$Id:$
|
#$Id:$
|
||||||
SCRIPTVERSION="3.11"
|
SCRIPTVERSION="3.12"
|
||||||
# Author: Adimarantis
|
# Author: Adimarantis
|
||||||
# License: GPL
|
# License: GPL
|
||||||
#Install script for signal-cli
|
#Install script for signal-cli
|
||||||
@ -18,29 +18,32 @@ TMPFILE=/tmp/signal$$.tmp
|
|||||||
DBVER=0.22
|
DBVER=0.22
|
||||||
OPERATION=$1
|
OPERATION=$1
|
||||||
JAVACMD=java
|
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
|
#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
|
if ! [ "$JAVA_HOME" = "" ]; then
|
||||||
JAVACMD=$JAVA_HOME/bin/java
|
JAVACMD=$JAVA_HOME/bin/java
|
||||||
|
JAVA_NATIVE=no
|
||||||
fi
|
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]'`
|
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"
|
JAVACMD="/opt/java/bin/java"
|
||||||
export JAVA_HOME="/opt/java"
|
export JAVA_HOME="/opt/java"
|
||||||
|
JAVA_NATIVE=no
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||||
if [ "$J17" != "" ] || [ "$JVER" = "17.0" ]; then
|
if [ "$JDK_VER" == "" ]; then
|
||||||
VEXT="-Linux"
|
JAVA_NATIVE=no
|
||||||
JAVA_VERSION=17.0
|
if [ "$JVER" != "$JAVA_VERSION" ]; then
|
||||||
NATIVE_JAVA17=yes
|
JAVA_NATIVE=download
|
||||||
else
|
echo "Warning: No Java $JAVA_VERSION found - will try download of a Java $JAVA_VERSION package"
|
||||||
echo "Warning: No Java17 found - will try experimental download of a Java 17 package"
|
JAVACMD="/opt/java/bin/java"
|
||||||
JAVA_VERSION=17.0
|
fi
|
||||||
NATIVE_JAVA17=no
|
|
||||||
VEXT=
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Get OS data
|
#Get OS data
|
||||||
@ -110,7 +113,6 @@ install_by_file() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
check_and_create_path() {
|
check_and_create_path() {
|
||||||
#Check if path is available and create of not
|
#Check if path is available and create of not
|
||||||
CHECK=$1
|
CHECK=$1
|
||||||
@ -207,7 +209,8 @@ echo "Signal version: $SIGNALVERSION"
|
|||||||
echo "System library path: $LIBPATH"
|
echo "System library path: $LIBPATH"
|
||||||
echo "System architecture: $ARCH"
|
echo "System architecture: $ARCH"
|
||||||
echo "System GLIBC version: $GLIBC"
|
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
|
fi
|
||||||
|
|
||||||
check_and_update() {
|
check_and_update() {
|
||||||
@ -278,49 +281,59 @@ else
|
|||||||
echo 'created'
|
echo 'created'
|
||||||
fi
|
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]'`
|
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||||
echo $JVER
|
if [ "$JAVA_NATIVE" = "yes" ] && [ "$JVER" != "$JAVA_VERSION" ]; then
|
||||||
if [ "$JVER" != "17.0" ] && [ $NATIVE_JAVA17 = "yes" ]; then
|
PKG=$(dpkg-query -W --showformat='${Status}\n' $JDK_PACKAGE | grep "install")
|
||||||
echo -n "Installing openjdk-17-jre-headless..."
|
if [ -z "$PKG" ]; then
|
||||||
apt-get -q -y install openjdk-17-jre-headless >>$LOG
|
echo -n "Installing $JDK_PACKAGE..."
|
||||||
JVER=`java --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
apt-get -q -y install $JDK_PACKAGE >>$LOG
|
||||||
if [ "$JVER" = "17.0" ]; then
|
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"
|
echo "done"
|
||||||
else
|
else
|
||||||
echo "failed"
|
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
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! [ "$JVER" = "17.0" ]; then
|
#Final check
|
||||||
if ! [ "$JAVA_VERSION" = "$JVER" ]; then
|
JVER=`$JAVACMD --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
||||||
if [ -e /opt/java ]; then
|
if ! [ "$JVER" = "$JAVA_VERSION" ]; then
|
||||||
echo -n "Checking for Java in /opt/java ... "
|
echo "Error: Java $JVER found, but Java $JAVA_VERSION required"
|
||||||
JVER=`/opt/java/bin/java --version | grep -m1 -o '[0-9][0-9]\.[0-9]'`
|
echo "Something went wrong that this script cannot resolved - please fix manually"
|
||||||
echo $JVER
|
exit
|
||||||
fi
|
else
|
||||||
if ! [ "$JVER" = "$JAVA_VERSION" ]; then
|
echo "Checking for Java $JAVA_VERSION...successful"
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -357,7 +370,7 @@ if [ $NEEDINSTALL = 1 ]; then
|
|||||||
stop_service
|
stop_service
|
||||||
cd /tmp
|
cd /tmp
|
||||||
echo -n "Downloading signal-cli $SIGNALVERSION..."
|
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
|
if ! [ -e signal-cli-$SIGNALVERSION.tar.gz ]; then
|
||||||
echo "failed"
|
echo "failed"
|
||||||
exit
|
exit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user