Table of Contents

SDKman install

Return to SDKman

https://sdkman.io/install

Installation

Installing SDKMAN! on UNIX-like platforms is as easy as ever. SDKMAN! installs smoothly on macOS, Linux, WSL, Cygwin, Solaris and FreeBSD. We also support Bash and ZSH shells.

Simply open a new terminal and enter:

$ curl -s “https://get.sdkman.io” | bash

Follow the instructions on-screen to complete installation.

Next, open a new terminal or enter:

$ source “$HOME/.sdkman/bin/sdkman-init.sh”

Lastly, run the following code snippet to ensure that installation succeeded:

$ sdk version

If all went well, the version should be displayed. Something like:

sdkman 5.16.0

Windows Installation

Several options exist for installing SDKMAN! on Windows today.

The first solution involves installing Windows Subsystem for Linux (WSL) prior to attempting SDKMAN installation. You need a basic toolchain including bash, zip, unzip, and curl (tar and gzip required for special cases). Most likely it will work out of the box.

Another solution involves installing Cygwin prior to attempting SDKMAN installation. For our software to function, we require that Cygwin is installed with the same toolchain as described for WSL.

The third solution is for Git users using the Git Bash for Windows environment. In order for this to work, the environment needs to be supplemented with MinGW to add the necessary toolchain to function.

Please be aware that as SDKMAN is written in bash, it requires a bash environment to be present. SDKMAN can not be installed natively on Windows and requires WSL, Cygwin or MSYS+MinGW.

Beta Channel

For the more adventurous among us, we have a beta channel. All new CLI features will first be rolled out to this group of users for trial purposes. Beta versions can be considered stable for the most part, but might occasionally break. To join the beta channel, you can install it directly as follows:

$ curl -s “https://beta.sdkman.io” | bash

If you already have the stable version installed, simply update the ~/.sdkman/etc/config file as follows: sdkman_beta_channel=true

Next, open a new terminal and perform a forced update with:

$ sdk selfupdate force

To leave the beta channel, simply set the above config back to false and follow the same procedure.

Uninstallation

In the unlikely event that you would like to uninstall SDKMAN!, we don't have an automated way of doing this yet. If you really do want to remove it from your system, it is very easy to do so.The following will guide you through backing up, then removing the entire installation from your system.

tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman

$ rm -rf ~/.sdkman

The last step involves editing and removing the initialisation snippet from your .bashrc, .bash_profile and/or .profile files. If you use ZSH, remove it from the .zshrc file. The snippet of code to be removed looks something like this:

  1. THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!

-s "/home/dudette/.sdkman/bin/sdkman-init.sh" && source “/home/dudette/.sdkman/bin/sdkman-init.sh”

Once removed, you have successfully uninstalled SDKMAN! from your machine.

Installing to a Custom Location

It is possible to install SDKMAN! to a custom location other than $HOME/.sdkman. This can be achieved by exporting your custom location as SDKMAN_DIR prior to installing.

Simply open a new terminal and enter:

$ export SDKMAN_DIR=“/usr/local/sdkman” && curl -s “https://get.sdkman.io” | bash

For this to work it is vital that your user has full access rights to this folder.It is also important that the folder does not exist as SDKMAN! will attempt to create it.

Installing without Modifying Shell Config

There are situations where it isn't appropriate for the installer to modify your shell config automatically, such as unattended installs or when reinstalling. In those situations, appending rcupdate=false as a parameter when downloading the installer will cause it to skip that portion of the installation process.

$ curl -s “https://get.sdkman.io?rcupdate=false” | bash

That's all there is to it! Next we will look at SDKMAN Usage.

Sample Installation Output

curl -s “https://get.sdkman.io” | bash

                               -+syyyyyyys:
                           `/yho:`       -yd.
                        `/yh/`             +m.
                      .oho.                 hy                          .`
                    .sh/`                   :N`                `-/o`  `+dyyo:.
                  .yh:`                     `M-          `-/osysoym  :hs` `-+sys:      hhyssssssssy+
                .sh:`                       `N:          ms/-``  yy.yh-      -hy.    `.N-````````+N.
              `od/`                         `N-       -/oM-      ddd+`     `sd:     hNNm        -N:
             :do`                           .M.       dMMM-     `ms.      /d+`     `NMMs       `do
           .yy-                             :N`    ```mMMM.      -      -hy.       /MMM:       yh
         `+d+`           `:/oo/`       `-/osyh/ossssssdNMM`           .sh:         yMMN`      /m.
        -dh-           :ymNMMMMy  `-/shmNm-`:N/-.``   `.sN            /N-         `NMMy      .m/
      `oNs`          -hysosmMMMMydmNmds+-.:ohm           :             sd`        :MMM/      yy
     .hN+           /d:    -MMMmhs/-.`   .MMMh   .ss+-                 `yy`       sMMN`     :N.
    :mN/           `N/     `o/-`         :MMMo   +MMMN-         .`      `ds       mMMh      do
   /NN/            `N+....--:/+oooosooo+:sMMM:   hMMMM:        `my       .m+     -MMM+     :N.
  /NMo              -+ooooo+/:-....`...:+hNMN.  `NMMMd`        .MM/       -m:    oMMN.     hs
 -NMd`                                    :mm   -MMMm- .s/     -MMm.       /m-   mMMd     -N.
`mMM/                                      .-   /MMh. -dMo     -MMMy        od. .MMMs..---yh
+MMM.                                           sNo`.sNMM+     :MMMM/        sh`+MMMNmNm+++-
mMMM-                                           /--ohmMMM+     :MMMMm.       `hyymmmdddo
MMMMh.                  ````                  `-+yy/`yMMM/     :MMMMMy       -sm:.``..-:-.`
dMMMMmo-.``````..-:/osyhddddho.           `+shdh+.   hMMM:     :MmMMMM/   ./yy/` `:sys+/+sh/
.dMMMMMMmdddddmmNMMMNNNNNMMMMMs           sNdo-      dMMM-  `-/yd/MMMMm-:sy+.   :hs-      /N`
 `/ymNNNNNNNmmdys+/::----/dMMm:          +m-         mMMM+ohmo/.` sMMMMdo-    .om:       `sh
    `.-----+/.`       `.-+hh/`         `od.          NMMNmds/     `mmy:`     +mMy      `:yy.
          /moyso+//+ossso:.           .yy`          `dy+:`         ..       :MMMN+---/oys:
        /+m:  `.-:::-`               /d+                                    +MMMMMMMNh:`
       +MN/                        -yh.                                     `+hddhy+.
      /MM+                       .sh:
     :NMo                      -sh/
    -NMs                    `/yy:
   .NMy                  `:sh+.
  `mMm`               ./yds-
 `dMMMmyo:-.````.-:oymNy:`
 +NMMMMMMMMMMMMMMMMms:`
   -+shmNMMMNmdy+:`

                                                                Now attempting installation...

Looking for a previous installation of SDKMAN…

Looking for unzip

Looking for zip

Looking for curl

Looking for sed

Installing SDKMAN scripts…

Create distribution directories…

Getting available candidates…

Prime the config file…

Installing script cli archive…

  1. 100.0%
  1. 100.0%

Set version to 5.16.0 …

Set native version to 0.0.15 …

Attempt update of interactive bash profile on regular UNIX…

Added sdkman init snippet to /home/USERNAME/.bashrc

Attempt update of zsh profile

Updated existing /home/USERNAME/.zshrc

All done!

You are subscribed to the STABLE channel.

Please open a new terminal, or run the following in the existing one:

source “/home/USERNAME/.sdkman/bin/sdkman-init.sh”

Then issue the following command:

sdk help

Enjoy!!!

[USERNAME@localhost jetbrains-toolbox-1.26.1.13138]$ sdk version

BROADCAST

SDKMAN 5.16.0


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.