Anda di halaman 1dari 3

#!

/bin/bash #set -x verbose # Installs JDK # Default variables *CAN BE MODIFIED* DEFAULT_INSTALL_PATH=/usr/lib/jvm/ DEFAULT_BIN_PATH=/usr/bin/ DEFAULT_MAN_PATH=/usr/share/man/man1/ DEFAULT_MOZILLA_PATH=/usr/lib/mozilla/plugins/ # Checks root permissions if [ "$(id -u)" != "0" ]; then echo "Need to be root. Exiting..." exit 1 fi # Uses user defined installation tarball OR default tarball if [ "$1" = "" ]; then if [ ! -f jdk_name ]; then echo "Default file \"`pwd`/jdk_name\" does not exist. Exiting... " exit 1 elif [ `sed '/^#/d' jdk_name | wc -l` != '1' ]; then echo "Default file \"jdk_name\" has multiple entries. Exiting... " exit 1 else JDK_FILE=`sed '/^#/d' jdk_name` if [ ! -f $JDK_FILE ]; then echo "\"`pwd`/$JDK_FILE\" not found. Exiting..." exit 1 fi fi else if [ -f $1 ]; then JDK_FILE=$1; else echo "Specified file \"$1\" does not exist. Exiting..." fi fi # Saves name of JDK JDK_NAME=`tar -tf $JDK_FILE | sed 's/\/.*//' | head -n 1` # Checks if files alternatives_list exists if [ ! -f alternatives_list ]; then echo "Default file \"`pwd`/alternatives_list\" does not exist. Exiting.. ." exit 1 fi # Prompts user before installing JDK #while true; do # echo -e "Do you want to install $JDK_FILE?\n" # read input # case $input in # [yY] | [yY][Ee][Ss] ) # break;; # [nN] | [nN][Oo] )

# # # # # #done

echo "Exiting..." exit;; * ) echo -e "\nInvalid input\n";; esac

# Gets or creates current highest priority of Java installation if update-alternatives --display java &> /dev/null; then CURRENT_PRIORITY=`update-alternatives --display java\ | grep -o "priority .[0-9]*" | sed 's/priority\ //' | sort -rn | head -n 1` else CURRENT_PRIORITY=`shuf -i 90-100 -n 1` fi # Calculates new priorities NEW_HI_PRIORITY=`shuf -i $[$CURRENT_PRIORITY+30]-$[$CURRENT_PRIORITY+35] -n 1` NEW_LO_PRIORITY=$[$NEW_HI_PRIORITY-3] # Extracts java tarball to directory mkdir -p $DEFAULT_INSTALL_PATH && tar zxf $JDK_FILE -C $DEFAULT_INSTALL_PATH if rm -f .tmp.sh && touch .tmp.sh && echo "#!/bin/bash" > .tmp.sh; then while read line_in_file; do SLAVE_PATH=`find $DEFAULT_INSTALL_PATH$JDK_NAME\ \( -path '*/man/man1/*' -iname $line_in_file'.1' \) -print -quit ` if [ "$line_in_file" == "libnpjp2.so" ]; then BIN_PATH=$DEFAULT_MOZILLA_PATH else BIN_PATH=$DEFAULT_BIN_PATH fi if [ ! "$SLAVE_PATH" == "" ]; then SLAVE_NAME=`echo $SLAVE_PATH | sed 's,'"$DEFAULT_INSTALL_PATH$JDK_NAME""/man/man1/"',,' ` find $DEFAULT_INSTALL_PATH$JDK_NAME\ -path $DEFAULT_INSTALL_PATH$JDK_NAME'/bin/*' -iname $line_in_fil e\ -exec echo "update-alternatives --install"\ "$BIN_PATH$line_in_file $line_in_file"\ '{}' "$NEW_HI_PRIORITY"\ "--slave $DEFAULT_MAN_PATH$SLAVE_NAME"\ "$SLAVE_NAME $SLAVE_PATH" ';' >> .tmp.sh find $DEFAULT_INSTALL_PATH$JDK_NAME\ -path $DEFAULT_INSTALL_PATH$JDK_NAME'/jre/*' -iname $line_in_fil e\ -exec echo "update-alternatives --install"\ "$BIN_PATH$line_in_file $line_in_file"\ '{}' "$NEW_LO_PRIORITY"\ "--slave $DEFAULT_MAN_PATH$SLAVE_NAME"\ "$SLAVE_NAME $SLAVE_PATH" ';' >> .tmp.sh else find $DEFAULT_INSTALL_PATH$JDK_NAME\ -path $DEFAULT_INSTALL_PATH$JDK_NAME'/bin/*' -iname $line_in_fil e\ -exec echo "update-alternatives --install"\ "$BIN_PATH$line_in_file $line_in_file"\ '{}' "$NEW_HI_PRIORITY" ';' >> .tmp.sh

find $DEFAULT_INSTALL_PATH$JDK_NAME\ -path $DEFAULT_INSTALL_PATH$JDK_NAME'/jre/*' -iname $line_in_fil e\ -exec echo "update-alternatives --install"\ "$BIN_PATH$line_in_file $line_in_file"\ '{}' "$NEW_LO_PRIORITY" ';' >> .tmp.sh fi done < alternatives_list sh .tmp.sh rm -f .tmp.sh fi # Updates Java home variable OLD_JAVA_HOME=$( cat /etc/bash.bashrc | grep "JAVA_HOME=" | sed 's/JAVA_HOME=//' ) NEW_JAVA_HOME="$DEFAULT_INSTALL_PATH$JDK_NAME/" sed -i -e 's,'"$OLD_JAVA_HOME"','"$NEW_JAVA_HOME"',' /etc/bash.bashrc export JAVA_HOME=$NEW_JAVA_HOME

Anda mungkin juga menyukai