Skip to content

Instantly share code, notes, and snippets.

@nickboldt
Last active January 18, 2023 20:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickboldt/26abebff75e2e4f5d2bf105d8da07605 to your computer and use it in GitHub Desktop.
Save nickboldt/26abebff75e2e4f5d2bf105d8da07605 to your computer and use it in GitHub Desktop.
sdkman in UDI rhel8
sdkman in udi-rhel8 (including "exotic" architectures like s390x and ppc64le)
* `dnf install -q -y zip curl`
* install scripts and configs into ~/.sdkman/
curl -s "https://get.sdkman.io?rcupdate=false" | bash
or
curl -s "https://get.sdkman.io" | bash
* update ~/.bashrc, zshrc, etc. to add 3 lines at the end / or add ito entrypoint.sh:
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="${HOME}/.sdkman"
[[ -s "${HOME}/.sdkman/bin/sdkman-init.sh" ]] && source "${HOME}/.sdkman/bin/sdkman-init.sh"
* set up local install symlinks
sdk rm java 1.8
sdk rm java 8
sdk rm java 11
sdk install java 1.8 /usr/lib/jvm/jre-1.8.0
sdk install java 8 /usr/lib/jvm/jre-1.8.0
sdk install java 11 /usr/lib/jvm/java-11
* verify with:
sdk install maven
Setting maven 3.8.7 as default.
cd $HOME/.sdkman/candidates/maven/current
sdk use java 8; ./bin/mvn --version
sdk use java 11; ./bin/mvn --version
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /home/hudson/.sdkman/candidates/maven/current
Java version: 1.8.0_352, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el8_7.ppc64le/jre
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /home/hudson/.sdkman/candidates/maven/current
Java version: 11.0.17, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el8_6.ppc64le
* note that these will still point to RPM defaults:
mvn --version
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /opt/apache-maven-3.8.6
sdk use java 8; java -version; which java
openjdk version "11.0.17" 2022-10-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.17.0.8-2.el8_6) (build 11.0.17+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.17.0.8-2.el8_6) (build 11.0.17+8-LTS, mixed mode, sharing)
/usr/bin/java
* make sure to remove any alternative symlinks so that PATH resolve to ~/.sdkman/candidates/java
/usr/bin/java -> /etc/alternatives/java
/usr/bin/javac -> /etc/alternatives/javac
---------------------
$➔ sdk use java 17
Setting java version 17 as default.
Using java version 17 in this shell.
[13:35:56] nboldt@t490s-f36:~/.sdkman/candidates/java
$➔ mvn -v
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /home/nboldt/.sdkman/candidates/maven/current
Java version: 11.0.17, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.17.0.8-3.fc36.x86_64
Default locale: en_CA, platform encoding: UTF-8
OS name: "linux", version: "6.0.18-200.fc36.x86_64", arch: "amd64", family: "unix"
^^^^ so that's a bug... not sure how to fix...
* maybe uninstall alternatives or deconfigure all the java related alternative entries?
And if installing from zip or GH sources:
To fetch from zip:
SDKMAN_VERSION=5.16.0
sdkman_zip_file=sdkman.exotic.zip
curl -ssLk https://api.sdkman.io/2/broker/download/sdkman/install/${SDKMAN_VERSION}/exotic -o ${sdkman_zip_file}
unzip -qo "$sdkman_zip_file" -d "$sdkman_tmp_folder"
cp -rf "${sdkman_tmp_folder}"/sdkman-*/* "$SDKMAN_DIR"
To fetching from raw sources:
0. clone project from the SDKMAN_VERSION=5.16.0 tag
1. SDKMAN_CANDIDATES_API=https://api.sdkman.io/2
1. copy src/main/bash/sdkman-init.sh to bin/sdkman-init.sh, then fix these two lines
export SDKMAN_VERSION="@SDKMAN_VERSION@"
export SDKMAN_CANDIDATES_API="@SDKMAN_CANDIDATES_API@"
2. copy src/main/bash to src/
3. copy contrib/ to contrib/
4. more stuff created by the init.sh script?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment