Last active
May 7, 2019 09:01
-
-
Save dtonhofer/0692c21249e89d3ad37eb86635b71055 to your computer and use it in GitHub Desktop.
Revisions
-
dtonhofer revised this gist
May 7, 2019 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,7 +2,8 @@ How to install Atlassian Confluence (using the "installer" download), using anot ============================================================================================================= - When: 2019-04 - For Confluence 6.15.1 - On Linux/Unix (actually Fedora 29) - See also: https://jira.atlassian.com/browse/CONFSERVER-57895 "Installing Confluence in OpenSUSE Tumbleweed through the installer fails" So we have a problem because installation of Confluence using the binary INSTALL4J install module fails: -
dtonhofer revised this gist
May 7, 2019 . 1 changed file with 8 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,5 +1,9 @@ How to install Atlassian Confluence (using the "installer" download), using another JRE than the embedded one ============================================================================================================= - When: 2019-04 - For Confluence 6.15.1 - On Linux/Unix So we have a problem because installation of Confluence using the binary INSTALL4J install module fails: @@ -32,7 +36,8 @@ Let's install this with another JRE than the embedded one. (Update: I'm stupid! The dropdown menu at said page has the option to get the tar.gz or zip file, so if you are reading this it's better to get on with the tar.gz instead of unpacking elements the hard way as is done below. Go directly to page https://confluence.atlassian.com/doc/installing-confluence-on-linux-from-archive-file-255362363.html OTOH, you may want to keep going with the installer-based way but still have problems, then read on) Check MD5 sum: -
dtonhofer revised this gist
Apr 10, 2019 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -31,7 +31,8 @@ Let's install this with another JRE than the embedded one. (Update: I'm stupid! The dropdown menu at said page has the option to get the tar.gz or zip file, so if you are reading this it's better to get on with the tar.gz instead of unpacking elements the hard way as is done below. Go directly to page https://confluence.atlassian.com/doc/installing-confluence-on-linux-from-archive-file-255362363.html ) Check MD5 sum: -
dtonhofer renamed this gist
Apr 10, 2019 . 1 changed file with 5 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -28,7 +28,11 @@ Let's install this with another JRE than the embedded one. (Apparently there is a tar somewhere, but I didn't find it; maybe I'm getting confused with all that playful 2019 web design) (Update: I'm stupid! The dropdown menu at said page has the option to get the tar.gz or zip file, so if you are reading this it's better to get on with the tar.gz instead of unpacking elements the hard way as is done below) Check MD5 sum: md5sum atlassian-confluence-6.15.1-x64.bin -
dtonhofer created this gist
Mar 30, 2019 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,242 @@ Installing Confluence ===================== So we have a problem because installation of Confluence using the binary INSTALL4J install module fails: # bash atlassian-confluence-6.15.1-x64.bin Unpacking JRE ... Starting Installer ... java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) at sun.awt.FontConfiguration.init(FontConfiguration.java:107) at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774) at sun.font.SunFontManager$2.run(SunFontManager.java:431) at java.security.AccessController.doPrivileged(Native Method) at sun.font.SunFontManager.<init>(SunFontManager.java:376) ...and the workarounds doesn't work: https://jira.atlassian.com/browse/CONFSERVER-57895 Let's install this with another JRE than the embedded one. 0) Go to your home directory (in this case, /home/fedora) cd ~ 1) Download "atlassian-confluence-6.15.1-x64.bin" from https://www.atlassian.com/software/confluence/download and put it into the home directory. (Apparently there is a tar somewhere, but I didn't find it; maybe I'm getting confused with all that playful 2019 web design) Check MD5 sum: md5sum atlassian-confluence-6.15.1-x64.bin ff02e94f5fdf4718d76cea0583e57e8d atlassian-confluence-6.15.1-x64.bin This file is a concatenation of: [A shell script (partly from install4j I reckon)] [The confluence server payload] [A tar.gz file that unpacks into Install4J stuff with an embedded JRE] 2) We won't rely on the embedded JRE! Make sure you have a Java 8 JRE on the system. In this case, I grab a Java 8 JRE from Oracle and put it into my home dir under /home/fedora/jre/jre: cd ~ mkdir jre cd jre tar xzf ../jre-8u201-linux-x64.tar.gz ln -s jre1.8.0_201 jre cd ~ 3) On this system the system's JDK in /usr/local/java/jdk8_64_oracle Change this in "script.sh" as needed! See below!! 4) Create a directory for further installation operations. mkdir operations cd operations 5) Extract the installation script (at the start of the binary). There are 673 lines of interest! head -673 ../atlassian-confluence-6.15.1-x64.bin > script.sh chmod +x script.sh This script needs some serious attention by a professional, it's not even indented right. Me sad!! :-( 6) Extract the "install4j installer" (at the far end of the binary) There are 53068000 byte of interest (found by inspecting the script.sh) tail -c 53068000 ../atlassian-confluence-6.15.1-x64.bin > sfx_archive.tar.gz 7) Good sizes? ls -l 19292 Mar 30 15:15 script.sh 53068000 Mar 30 15:15 sfx_archive.tar.gz 8) Unpack the installer and remove the embedded JRE mkdir sfx_archive cd sfx_archive tar xzf ../sfx_archive.tar.gz rm -f jre.tar.gz 9) Skip over the installation of "fontconfig" package, we already have that! rpm --query fontconfig fontconfig-2.13.1-3.fc29.x86_64 Yup we do. 10) Start editing the "script.sh"! cd ~/operations cp script.sh script.sh.orig vim script.sh a) Delete all the lines down to the second "#!/bin/sh" shebang line! b) Go to the line TAR_OPTIONS=... which is the first line beyond the function declarations c) Simplify all the stuff underneath as described below, change those constants accordingly. d) Results in a new script.sh. --> There is no need to patch the "module" (i.e. the original confluence download) 11) Run the script.sh as root (by sudo if need be) 12) On failure, you can always uninstall using /opt/atlassian/confluence/uninstall.sh As we have removed all the command to "remove recursive" after installation, temporary directory with files will be in /tmp/tmp_confluence_install_2019-03-30T15:27:22 or similar. Script fragment to replace part of the original installation script follows: -------8<-------8<-------8<-------8<------- if [ -z "$app_java_home" ]; then if [ -f "$app_home/.install4j/inst_jre.cfg" ]; then read file_jvm_home < "$app_home/.install4j/inst_jre.cfg" test_jvm "$file_jvm_home" if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then if [ -f "$db_file" ]; then rm "$db_file" 2> /dev/null fi test_jvm "$file_jvm_home" fi fi fi } # ============ # RIP & REPLACE WHITH WHAT IS BELOW # ============ sfx_archive_dir=/home/fedora/operations/sfx_archive # contains directory "user"! jre_home=/home/fedora/jre/jre # our JRE! # Create a temporary installation direction (won't delete this afterwards, # you may want to do that yourself) isodate=$(date +%Y-%m-%dT%H:%M:%S) tmp_dir=/tmp/tmp_confluence_install_$isodate mkdir "$tmp_dir" || { echo "Could not create dir $tmp_dir. Aborting." exit 1 } cp -a "$sfx_archive_dir"/* "$tmp_dir" cd "$sfx_archive_dir" || { echo "Could not cd to $sfx_archive_dir. Aborting." exit 1 } sfx_dir_name=$(pwd) local_classpath="" i4j_classpath="i4jruntime.jar" add_class_path "$i4j_classpath" LD_LIBRARY_PATH="$sfx_dir_name/user:$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$sfx_dir_name/user:$DYLD_LIBRARY_PATH" SHLIB_PATH="$sfx_dir_name/user:$SHLIB_PATH" LIBPATH="$sfx_dir_name/user:$LIBPATH" LD_LIBRARYN32_PATH="$sfx_dir_name/user:$LD_LIBRARYN32_PATH" LD_LIBRARYN64_PATH="$sfx_dir_name/user:$LD_LIBRARYN64_PATH" export LD_LIBRARY_PATH export DYLD_LIBRARY_PATH export SHLIB_PATH export LIBPATH export LD_LIBRARYN32_PATH export LD_LIBRARYN64_PATH # Add install4j debugging messages! INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS -Di4j.vpt=true -Dinstall4j.debug=true -Dinstall4j.logToStderr=true" for param in $@; do if [ `echo "W$param" | cut -c -3` = "W-J" ]; then INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS `echo "$param" | cut -c 3-`" fi done if [ "W$vmov_1" = "W" ]; then vmov_1="-Di4jv=0" fi if [ "W$vmov_2" = "W" ]; then vmov_2="-Di4jv=0" fi if [ "W$vmov_3" = "W" ]; then vmov_3="-Di4jv=0" fi if [ "W$vmov_4" = "W" ]; then vmov_4="-Di4jv=0" fi if [ "W$vmov_5" = "W" ]; then vmov_5="-Di4jv=0" fi echo "Starting Installer ..." # Where is the System Java (not the same as the JRE used in installation) app_java_home=/usr/local/java/jdk8_64_oracle # The "module" is the file that we downloaded. The middle of the file contains the # Confluence payload! module_name="/home/fedora/atlassian-confluence-6.15.1-x64.bin" old_pwd=/home/fedora # Simplified command line running installer "$jre_home/bin/java" \ "-Djava.awt.headless=true" \ -Dinstall4j.jvmDir="$app_java_home" \ -Dexe4j.moduleName="$module_name" \ -Dexe4j.totalDataLength=618037334 \ -Dinstall4j.cwd="$old_pwd" \ "-Dinstall4j.executionMode=console" \ "-Dsun.java2d.noddraw=true" \ "$vmov_1" \ "$vmov_2" \ "$vmov_3" \ "$vmov_4" \ "$vmov_5" \ $INSTALL4J_ADD_VM_PARAMS \ -classpath "$local_classpath" \ com.install4j.runtime.launcher.UnixLauncher launch 0 0 0 com.install4j.runtime.installer.Installer "$@"