SDKMAN:轻松管理多个软件开发套件 (SDK) 的命令行工具

开源 后端
你是否是一个经常在不同的 SDK 下安装和测试应用的开发者?我有一个好消息要告诉你!给你介绍一下 SDKMAN,一个可以帮你轻松管理多个 SDK 的命令行工具。它为安装、切换、列出和移除 SDK 提供了一个简便的方式。

[[248839]]

你是否是一个经常在不同的 SDK 下安装和测试应用的开发者?我有一个好消息要告诉你!给你介绍一下 SDKMAN,一个可以帮你轻松管理多个 SDK 的命令行工具。它为安装、切换、列出和移除 SDK 提供了一个简便的方式。有了 SDKMAN,你可以在任何类 Unix 的操作系统上轻松地并行管理多个 SDK 的多个版本。它允许开发者为 JVM 安装不同的 SDK,例如 Java、Groovy、Scala、Kotlin 和 Ceylon、Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot、Vert.x,以及许多其他支持的 SDK。SDKMAN 是免费、轻量、开源、使用 Bash 编写的程序。

安装 SDKMAN

安装 SDKMAN 很简单。首先,确保你已经安装了 zipunzip 这两个应用。它们在大多数的 Linux 发行版的默认仓库中。
例如,在基于 Debian 的系统上安装 unzip,只需要运行:

  1. $ sudo apt-get install zip unzip

然后使用下面的命令安装 SDKMAN:

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

在安装完成之后,运行以下命令:

  1. $ source "$HOME/.sdkman/bin/sdkman-init.sh"

如果你希望自定义安装到其他位置,例如 /usr/local/,你可以这样做:

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

确保你的用户有足够的权限访问这个目录。

***,在安装完成后使用下面的命令检查一下:

  1. $ sdk version
  2. ==== BROADCAST =================================================================
  3. * 01/08/18: Kotlin 1.2.60 released on SDKMAN! #kotlin
  4. * 31/07/18: Sbt 1.2.0 released on SDKMAN! #sbt
  5. * 31/07/18: Infrastructor 0.2.1 released on SDKMAN! #infrastructor
  6. ================================================================================
  7.  
  8. SDKMAN 5.7.2+323

恭喜你!SDKMAN 已经安装完成了。让我们接下来看如何安装和管理 SDKs 吧。

管理多个 SDK

查看可用的 SDK 清单,运行:

  1. $ sdk list

将会输出:

  1. ================================================================================
  2. Available Candidates
  3. ================================================================================
  4. q-quit /-search down
  5. j-down ?-search up
  6. k-up h-help
  7.  
  8. --------------------------------------------------------------------------------
  9. Ant (1.10.1) https://ant.apache.org/
  10.  
  11. Apache Ant is a Java library and command-line tool whose mission is to drive
  12. processes described in build files as targets and extension points dependent
  13. upon each other. The main known usage of Ant is the build of Java applications.
  14. Ant supplies a number of built-in tasks allowing to compile, assemble, test and
  15. run Java applications. Ant can also be used effectively to build non Java
  16. applications, for instance C or C++ applications. More generally, Ant can be
  17. used to pilot any type of process which can be described in terms of targets and
  18. tasks.
  19.  
  20. : $ sdk install ant

就像你看到的,SDK 每次列出众多 SDK 中的一个,以及该 SDK 的描述信息、官方网址和安装命令。按回车键继续下一个。

安装一个新的 SDK,例如 Java JDK,运行:

  1. $ sdk install java

将会输出:

  1. Downloading: java 8.0.172-zulu
  2.  
  3. In progress...
  4.  
  5. ######################################################################################## 100.0%
  6.  
  7. Repackaging Java 8.0.172-zulu...
  8.  
  9. Done repackaging...
  10.  
  11. Installing: java 8.0.172-zulu
  12. Done installing!
  13.  
  14. Setting java 8.0.172-zulu as default.

如果你安装了多个 SDK,它将会提示你是否想要将当前安装的版本设置为 默认版本。回答 Yes 将会把当前版本设置为默认版本。

使用以下命令安装一个 SDK 的其他版本:

  1. $ sdk install ant 1.10.1

如果你之前已经在本地安装了一个 SDK,你可以像下面这样设置它为本地版本。

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

列出一个 SDK 的多个版本:

  1. $ sdk list ant

将会输出:

  1. ================================================================================
  2. Available Ant Versions
  3. ================================================================================
  4. > * 1.10.1
  5. 1.10.0
  6. 1.9.9
  7. 1.9.8
  8. 1.9.7
  9.  
  10. ================================================================================
  11. + - local version
  12. * - installed
  13. > - currently in use
  14. ================================================================================

像我之前说的,如果你安装了多个版本,SDKMAN 会提示你是否想要设置当前安装的版本为 默认版本。你可以回答 Yes 设置它为默认版本。当然,你也可以在稍后使用下面的命令设置:

  1. $ sdk default ant 1.9.9

上面的命令将会设置 Apache Ant 1.9.9 为默认版本。

你可以根据自己的需要选择使用任何已安装的 SDK 版本,仅需运行以下命令:

  1. $ sdk use ant 1.9.9

检查某个具体 SDK 当前的版本号,例如 Java,运行:

  1. $ sdk current java
  2. Using java version 8.0.172-zulu

检查所有当下在使用的 SDK 版本号,运行:

  1. $ sdk current
  2.  
  3. Using:
  4.  
  5. ant: 1.10.1
  6. java: 8.0.172-zulu

升级过时的 SDK,运行:

  1. $ sdk upgrade scala

你也可以检查所有的 SDK 中还有哪些是过时的。

  1. $ sdk upgrade

SDKMAN 有离线模式,可以让 SDKMAN 在离线时也正常运作。你可以使用下面的命令在任何时间开启或者关闭离线模式:

  1. $ sdk offline enable
  2. $ sdk offline disable

要移除已安装的 SDK,运行:

  1. $ sdk uninstall ant 1.9.9

要了解更多的细节,参阅帮助章节。

  1. $ sdk help
  2.  
  3. Usage: sdk <command> [candidate] [version]
  4. sdk offline <enable|disable>
  5.  
  6. commands:
  7. install or i <candidate> [version]
  8. uninstall or rm <candidate> <version>
  9. list or ls [candidate]
  10. use or u <candidate> [version]
  11. default or d <candidate> [version]
  12. current or c [candidate]
  13. upgrade or ug [candidate]
  14. version or v
  15. broadcast or b
  16. help or h
  17. offline [enable|disable]
  18. selfupdate [force]
  19. update
  20. flush <broadcast|archives|temp>
  21.  
  22. candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc.
  23. use list command for comprehensive list of candidates
  24. eg: $ sdk list
  25.  
  26. version : where optional, defaults to latest stable if not provided
  27. eg: $ sdk install groovy

更新 SDKMAN

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

  1. $ sdk selfupdate

SDKMAN 会定期检查更新,并给出让你了解如何更新的指令。

  1. WARNING: SDKMAN is out-of-date and requires an update.
  2.  
  3. $ sdk update
  4. Adding new candidates(s): scala

清除缓存

建议时不时的清理缓存(包括那些下载的 SDK 的二进制文件)。仅需运行下面的命令就可以了:

  1. $ sdk flush archives

它也可以用于清理空的文件夹,节省一点空间:

  1. $ sdk flush temp

卸载 SDKMAN

如果你觉得不需要或者不喜欢 SDKMAN,可以使用下面的命令删除。

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

***打开你的 .bashrc.bash_profile 和/或者 .profile,找到并删除下面这几行。

  1. #THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
  2. export SDKMAN_DIR="/home/sk/.sdkman"
  3. [[ -s "/home/sk/.sdkman/bin/sdkman-init.sh" ]] && source "/home/sk/.sdkman/bin/sdkman-init.sh"

如果你使用的是 ZSH,就从 .zshrc 中删除上面这一行。

这就是所有的内容了。我希望 SDKMAN 可以帮到你。还有更多的干货即将到来。敬请期待! 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2021-12-06 15:05:41

鸿蒙HarmonyOS应用

2020-12-11 06:44:16

命令行工具开发

2020-12-10 16:16:08

工具代码开发

2018-05-04 09:15:35

PythonPlumbum命令行

2023-10-30 01:00:42

Go语言Cobra库

2011-01-18 19:11:26

Postfix命令行

2023-07-05 08:13:06

2023-06-09 07:45:29

Kuberneteskubectl

2009-02-27 09:07:09

Linux开发套件100美元

2013-11-15 09:43:15

JDK工具

2010-09-01 14:23:54

Linux命令行开发

2024-04-29 07:38:20

PythonDocopt开发

2022-04-18 08:00:00

JDKSDKMAN开发

2013-12-09 14:29:13

OpenStack命令行工具API

2010-11-24 17:12:17

MySQL命令行

2014-04-16 13:22:29

虚拟机OpenStack命令行

2014-04-16 10:44:56

OpenStack命令行工具虚拟机

2019-06-10 15:00:27

node命令行前端

2018-04-03 13:50:27

Linux容器命令行工具

2017-06-15 10:32:56

OracleDBV命令行工具
点赞
收藏

51CTO技术栈公众号