安装SDKMAN(The Software Development Kit Manager)

宣熙云
2023-12-01

SDKMAN是一个基于Unix系统的管理多重软件开发工具箱并行版本的工具。它为安装,转换,移除和展示可安装列表提供了简单的命令行接口(CLI)和API。前身是GVM(the Groovy enVironment Manager)其灵感来自于主要在在Ruby社区使用的RVM和vbenv工具。

特性

  • By Developers, for Developers
    让生活更简单。不需要很多下载页面,解压,添加_HOME到PATH环境变量。

  • Java all the way down
    为JVM,比如java,Groovy,Scala,Kotlin和Ceylon,安装软件工具箱。Activator, Ant, Gradle, Grails, Maven, SBT, Spring Boot, Vert.x 和其他许多工具都支持。

  • Lightweight
    使用bash,你的系统只需要安装curl和zip/unzip就行。甚至ZSH也可以。

  • Multi-platform
    在任何基于UNIX系统的平台上都可以运行:Mac OSX,Linux,Cygwin,Solaris和FreeBSD。Windows用户可以使用Powershell 客户端。

  • APIs
    新用户通过开源的Broker REST API可以很容易使用。供应商可以通过一个安全的供应商API发布和声明自己的版本。

  • Get started now!
    接下来,把下面的命令粘贴到终端并且运行:

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

安装SDK

  1. 在终端中运行$ curl -s "https://get.sdkman.io" | bash ,根据屏幕上的提示完成安装。
  2. 打开新终端或者在当前终端输入$ source "$HOME/.sdkman/bin/sdkman-init.sh"
  3. 运行下面的命令确保安装成功了:sdk version ,如果安装成功,会显示
    sdkman 5.0.0+51

卸载SDK

运行

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

安装到自定义位置

默认是安装在了$HOME/.sdkman 下,我们可以自定义安装位置
$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash

使用

通过下面的命令可以安装sdk选项的最新稳定版本:

$ sdk install java

你会看到下面的输出:

Downloading: java 8u111

In progress...

######################################################################## 100.0%

Installing: java 8u111
Done installing!

下面你会得到提示,是否将这个版本设置为默认版本:

Do you want java 8u111 to be set as default? (Y/n):

输入yes (或者点击回车键)会在随后打开的shells中将这个版本作为默认版本使用。

指定版本

指定你想安装的版本$ sdk install scala 2.12.1 ,之后同上。

安装本地版本

$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT

移除已按照的版本

$ sdk uninstall scala 2.11.6

显示可安装列表

$ sdk list
这个命令会展示一个按字母排序的可安装选项列表,列表的每一项显示名称,当前稳定默认版本,地址,描述和简单的安装命令。输出支持管道,因此可以使用键盘快捷键q退出。


================================================================================
Available Candidates
================================================================================
q-quit                                  /-search down
j-down                                  ?-search up
k-up                                    h-help
--------------------------------------------------------------------------------
Groovy (2.4.5)                                       http://www.groovy-lang.org/

Groovy is a powerful, optionally typed and dynamic language, with static-typing
and static compilation capabilities, for the Java platform aimed at multiplying
developers’ productivity thanks to a concise, familiar and easy to learn syntax.
It integrates smoothly with any Java program, and immediately delivers to your
application powerful features, including scripting capabilities, Domain-Specific
Language authoring, runtime and compile-time meta-programming and functional
programming.

                                                            $ sdk install groovy
--------------------------------------------------------------------------------
Scala (2.11.7)                                        http://www.scala-lang.org/
...

展示某个工具的版本列表

$ sdk list groovy
这个命令会展示当前版本的SDK可选的,本地的,已安装的。

================================================================================
Available Groovy Versions
================================================================================
 > * 2.4.4                2.3.1                2.0.8                1.8.3
     2.4.3                2.3.0                2.0.7                1.8.2
     2.4.2                2.2.2                2.0.6                1.8.1
     2.4.1                2.2.1                2.0.5                1.8.0
     2.4.0                2.2.0                2.0.4                1.7.9
     2.3.9                2.1.9                2.0.3                1.7.8
     2.3.8                2.1.8                2.0.2                1.7.7
     2.3.7                2.1.7                2.0.1                1.7.6
     2.3.6                2.1.6                2.0.0                1.7.5
     2.3.5                2.1.5                1.8.9                1.7.4
     2.3.4                2.1.4                1.8.8                1.7.3
     2.3.3                2.1.3                1.8.7                1.7.2
     2.3.2                2.1.2                1.8.6                1.7.11
     2.3.11               2.1.1                1.8.5                1.7.10
     2.3.10               2.1.0                1.8.4                1.7.1

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

使用版本

在当前终端中使用给定版本:
$ sdk use scala 2.12.1
要意识到这个命令只会切换当前shell的可选版本。要让这种改变持久化,使用默认的命令。

默认版本

将给定版本设置为默认版本:
$ sdk default scala 2.11.6

当前版本

查看当前版本:

$ sdk current java
Using java version 8u111 
$ sdk current
  Using:
  groovy: 2.4.7
  java: 8u111
  scala: 2.12.1

过期版本

系统上某个工具版本是否过期:

$ sdk outdated springboot
  Outdated:
  springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 1.2.5.RELEASE)
$ sdk outdated
  Outdated:
  gradle (2.3, 1.11, 2.4, 2.5 < 2.6)
  grails (2.5.1 < 3.0.4)
  springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 1.2.5.RELEASE)

更新设置

使用下面的命令,如果有新版本可以更新:

$ sdk selfupdate

强制重新安装:

$ sdk selfupdate force

刷新安装选项

$ sdk flush candidates
这个命令会清空安装选项列表。打开新终端后,会拉取并在本地存储最新的列表。

帮助

$ sdk help
输出:

Usage: sdk   [version]
       sdk offline 

   commands:
       install   or i     [version]
       uninstall or rm    
       list      or ls   
       use       or u     [version]
       default   or d     [version]
       current   or c    [candidate]
       outdated  or o    [candidate]
       version   or v
       broadcast or b
       help      or h
       offline           
       selfupdate        [force]
       flush             

   candidate  :  ...
   version    :  where optional, defaults to latest stable if not provided

eg: sdk install groovy

配置

配置文件~/.sdkman/etc/config
目前可配置的内容:

# make sdkman non-interactive, preferred for CI environments
sdkman_auto_answer=true|false

# perform automatic selfupdates
sdkman_auto_selfupdate=true|false

# disables SSL certificate verification
# https://github.com/sdkman/sdkman-cli/issues/327
# HERE BE DRAGONS....
sdkman_insecure_ssl=true|false

# disable GVM alias, for users of the Go Version Manager
sdkman_disable_gvm_alias=true|false

# configure curl timeouts
sdkman_curl_connect_timeout=5
sdkman_curl_max_time=4

# subscribe to the beta channel
sdkman_beta_channel=true

SDK 可安装选项

  • Activator (1.3.10)
    Typesafe是一款用来帮助构建反应系统的GUI/CLI工具。它使用sbt(简单构建构建)来构建,运行,测试项目。提供了一个代码编辑接口,还有可以clone和use的模板和种子。
    $ sdk install activator

  • Ant (1.10.0)(不解释)
    https://ant.apache.org/
    $ sdk install ant

  • AsciidoctorJ (1.5.5)
    http://asciidoctor.org/
    AsciidoctorJ 是一个在JVM上运行Asciidoctor 的官方库。通过Asciidoctor,可以将java或者其他JVM语言转换为AsciiDoc 内容或者解析的AsciiDoc 文档的分析结构。
    $ sdk install asciidoctorj

  • Ceylon (1.3.2)
    http://ceylon-lang.org/
    Ceylon是一种为java和js虚拟机而产生的现代化的,模块化的,静态类型的编程语言。该语言以弹性和可读性,一个唯一的和不普遍的优雅的静态类型系统,强大的模块结构和出色的工具为特征。
    $ sdk install ceylon

  • -
 类似资料: