歡迎光臨
每天分享高質量文章

SDKMAN:輕鬆管理多個軟體開發套件 (SDK) 的命令列工具 | Linux 中國

它允許開發者為 JVM 安裝不同的 SDK,例如 Java、Groovy、Scala、Kotlin 和 Ceylon、Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot、Vert.x,以及許多其他支援的 SDK。
— Sk

 

 

 

致謝
編譯自 | 
https://www.ostechnix.com/sdkman-a-cli-tool-to-easily-manage-multiple-software-development-kits/
 
 作者 | Sk
 譯者 | dianbanjiu ???共計翻譯:12.0 篇 貢獻時間:40 天

你是否是一個經常在不同的 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 很簡單。首先,確保你已經安裝了 zip 和 unzip 這兩個應用。它們在大多數的 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. 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. Ant (1.10.1) https://ant.apache.org/
  9. Apache Ant is a Java library and command-line tool whose mission is to drive
  10. processes described in build files as targets and extension points dependent
  11. upon each other. The main known usage of Ant is the build of Java applications.
  12. Ant supplies a number of built-in tasks allowing to compile, assemble, test and
  13. run Java applications. Ant can also be used effectively to build non Java
  14. applications, for instance C or C++ applications. More generally, Ant can be
  15. used to pilot any type of process which can be described in terms of targets and
  16. tasks.
  17. : $ sdk install ant

就像你看到的,SDK 每次列出眾多 SDK 中的一個,以及該 SDK 的描述資訊、官方網址和安裝命令。按回車鍵繼續下一個。

安裝一個新的 SDK,例如 Java JDK,執行:

  1. $ sdk install java

將會輸出:

  1. Downloading: java 8.0.172-zulu
  2. In progress...
  3. ######################################################################################## 100.0%
  4. Repackaging Java 8.0.172-zulu...
  5. Done repackaging...
  6. Installing: java 8.0.172-zulu
  7. Done installing!
  8. 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. + - local version
  11. * - installed
  12. > - currently in use
  13. ================================================================================

像我之前說的,如果你安裝了多個版本,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. Using:
  3. ant: 1.10.1
  4. 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. Usage: sdk <command> [candidate] [version]
  3. sdk offline <enable|disable>
  4. commands:
  5. install or i <candidate> [version]
  6. uninstall or rm <candidate> <version>
  7. list or ls [candidate]
  8. use or u <candidate> [version]
  9. default or d <candidate> [version]
  10. current or c [candidate]
  11. upgrade or ug [candidate]
  12. version or v
  13. broadcast or b
  14. help or h
  15. offline [enable|disable]
  16. selfupdate [force]
  17. update
  18. flush <broadcast|archives|temp>
  19. candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc.
  20.                 use list command for comprehensive list of candidates
  21.                 eg: $ sdk list
  22. version : where optional, defaults to latest stable if not provided
  23.             eg: $ sdk install groovy

更新 SDKMAN

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

  1. $ sdk selfupdate

SDKMAN 會定期檢查更新,並給出讓你瞭解如何更新的指令。

  1. WARNING: SDKMAN is out-of-date and requires an update.
  2. $ sdk update
  3. 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 可以幫到你。還有更多的乾貨即將到來。敬請期待!

祝近祺!

:)


via: https://www.ostechnix.com/sdkman-a-cli-tool-to-easily-manage-multiple-software-development-kits/

作者:SK[2] 選題:lujun9972 譯者:dianbanjiu 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

 

    贊(0)

    分享創造快樂