您是经常在不同 SDK 上测试应用程序的开发人员吗? 我有一个好消息要告诉你! SDKMAN 是一个 CLI 工具,可帮助您轻松管理 Linux 上的多个软件开发工具包。 它提供了一种方便的方式来安装、切换、列出和删除候选人。 使用 SDKMAN,我们可以轻松管理多个 SDK 的并行版本。 它允许开发人员为 JVM 安装软件开发工具包,例如 Java、Groovy、Scala、Kotlin 和 Ceylon。 还支持 Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot、Vert.x 等。 SDKMAN 是免费的、轻量级的、开源的实用程序,用 重击.
在 Linux 上安装 SDKMAN
安装 SDKMAN 很简单。 首先,确保你已经安装 压缩 和 解压 应用程序。 它在大多数 Linux 发行版的默认存储库中可用。 例如,要在基于 Debian 的系统上安装 unzip,只需运行:
$ sudo apt-get install zip unzip
然后,使用命令安装 SDKMAN:
$ curl -s "https://get.sdkman.io" | bash
就是这么简单。 此命令将安装 SDKMAN 在 $HOME/.sdkman 地点。
样本输出:
-+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... Download script archive... ######################################################################## 100.0% Extract script archive... Install scripts... Set version to 5.8.3+506 ... Attempt update of interactive bash profile on regular UNIX... Added sdkman init snippet to /home/ostechnix/.bashrc Attempt update of zsh profile... Updated existing /home/ostechnix/.zshrc All done! Please open a new terminal, or run the following in the existing one: source "/home/ostechnix/.sdkman/bin/sdkman-init.sh" Then issue the following command: sdk help Enjoy!!!
安装完成后,运行以下命令初始化 SDKMAN:
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
如果您想将它安装在您选择的自定义位置,而不是 $HOME/.sdkman, 为了 example /usr/本地/, 做:
$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
确保您的用户对此文件夹具有完全访问权限。
最后,使用命令检查是否安装成功:
$ sdk version
样本输出:
==== BROADCAST ================================================================= * 2020-06-27: sbt 1.3.13 released on SDKMAN! #scala * 2020-06-26: Micronaut 2.0.0 released on SDKMAN! #micronautfw * 2020-06-22: Micronaut 2.0.0.RC2 released on SDKMAN! #micronautfw ================================================================================ SDKMAN 5.8.3+506
恭喜! SDKMAN 已安装。 让我们继续看看如何安装和管理 SDK。
使用 SDKMAN 管理多个软件开发工具包
列出所有可用的软件开发工具包 (SDK)
要查看所有可用候选者 (SDK) 的列表,请运行:
$ sdk list
样本输出:
================================================================================ q-quit /-search down j-down ?-search up k-up h-help -------------------------------------------------------------------------------- Ant (1.10.1) https://ant.apache.org/ Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks. $ sdk install ant -------------------------------------------------------------------------------- AsciidoctorJ (2.3.1) https://asciidoctor.org/ AsciidoctorJ is the official library for running Asciidoctor on the JVM. Using AsciidoctorJ, you can convert AsciiDoc content or analyze the structure of a parsed AsciiDoc document from Java and other JVM languages. :
如您所见,SDKMAN 一次列出一个候选者,以及候选者的描述、官方网站和安装命令。 按 ENTER 键列出下一个候选人。 到 close 它,按 q.
安装新的 SDK
要安装 SDK,对于 example Java JDK,运行:
$ sdk install java
样本输出:
Downloading: java 11.0.7.hs-adpt In progress... ################################################################################################################################################################### 100.0%################################################################################################################################################################### 100.0% Repackaging Java 11.0.7.hs-adpt... Done repackaging... Installing: java 11.0.7.hs-adpt Done installing! Setting java 11.0.7.hs-adpt as default.
我们刚刚安装了 Java。 让我们检查一下它的版本:
$ java --version openjdk 11.0.7 2020-04-14 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.7+10) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.7+10, mixed mode)
如果已经存在多个 SDK,会提示是否要将当前安装的版本设置为 默认. 接听 是的 将当前安装的版本设置为默认值。
安装特定版本的 SDK
要安装特定版本的 SDK,请执行以下操作:
$ sdk install ant 1.10.1
上述命令将安装 Ant 版本 1.10.1。
如果您已经在本地安装了特定候选人,则可以将其设置为本地版本,如下所示。
$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT
列出候选版本
列出特定候选版本:
$ sdk list ant
样本输出:
================================================================================ Available Ant Versions ================================================================================ > * 1.10.1 1.10.0 1.9.9 1.9.8 1.9.7 ================================================================================ + - local version * - installed > - currently in use ================================================================================
正如您在上面的输出中看到的,ant 1.10.1 以“>”和“*”为前缀。 这里,> 表示当前正在使用该版本,* 表示它是默认版本。
设置默认 SDK
就像我已经说过的,如果您安装了多个版本,SDKMAN 会提示您是否要将当前安装的版本设置为 默认. 您可以回答 Yes 将其设置为默认值。 此外,您可以稍后使用以下命令执行此操作:
$ sdk default ant 1.9.9
上面的命令将设置 Apache Ant 版本 1.9.9 作为默认值。
为当前 shell 使用特定的 SDK
您可以选择要在当前 shell 中使用的特定候选版本。
$ sdk use ant 1.9.9
请注意,这将使给定版本仅在当前会话中使用。 要使其永久化,请使用如上所示的“默认”命令。
显示当前使用的版本
检查候选人当前正在使用的内容,例如 example Java,运行:
$ sdk current java Using java version 8.0.172-zulu
检查所有候选人当前正在使用的内容,例如 example Java,运行:
$ sdk current Using: ant: 1.10.1 java: 8.0.172-zulu
升级候选人
要升级过时的候选人,请执行以下操作:
$ sdk upgrade scala
您还可以检查所有候选人的过时内容。
$ sdk upgrade
离线模式
SDKMAN 具有离线模式功能,允许 SDKMAN 在离线工作时正常工作。 您可以随时使用以下命令启用或禁用离线模式:
$ sdk offline enable
$ sdk offline disable
删除已安装的 SDK
要删除已安装的 SDK,请运行:
$ sdk uninstall ant 1.9.9
获得帮助
要显示帮助部分,请运行:
$ sdk help Usage: sdk <command> [candidate] [version] sdk offline <enable|disable> commands: install or i <candidate> [version] uninstall or rm <candidate> <version> list or ls [candidate] use or u <candidate> [version] default or d <candidate> [version] current or c [candidate] upgrade or ug [candidate] version or v broadcast or b help or h offline [enable|disable] selfupdate [force] update flush <broadcast|archives|temp> candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc. use list command for comprehensive list of candidates eg: $ sdk list version : where optional, defaults to latest stable if not provided eg: $ sdk install groovy
更新 SDKMAN
以下命令会安装新版本的 SDKMAN(如果可用)。
$ sdk selfupdate
SDKMAN 还会定期检查是否有任何更新,并告知您如何更新。
WARNING: SDKMAN is out-of-date and requires an update. $ sdk update Adding new candidates(s): scala
删除缓存
建议不时清理包含已下载 SDK 二进制文件的缓存。 为此,只需运行:
$ sdk flush archives
清理临时文件夹以节省一些空间也很好:
$ sdk flush temp
卸载 SDKMAN
如果您不需要 SDKMAN 或不喜欢它,请按如下所示删除。
$ tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman $ rm -rf ~/.sdkman
最后,打开你的 .bashrc (或者 .bash_profile 或者 。轮廓) 文件:
$ nano ~/.bashrc
查找并删除以下行。
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! export SDKMAN_DIR="/home/ostechnix/.sdkman" [[ -s "/home/ostechnix/.sdkman/bin/sdkman-init.sh" ]] && source "/home/ostechnix/.sdkman/bin/sdkman-init.sh"
如果您使用 ZSH,请从 .zshrc 文件。
相关阅读:
- 如何在 Linux 上使用 jEnv 管理多个 Java 版本
- 如何在 Linux 上使用 Pyenv 管理多个 Python 版本
资源:
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!