¿Eres un desarrollador que a menudo prueba aplicaciones en diferentes SDK? ¡Tengo una buena noticia para ti! SDKMAN es una herramienta CLI que lo ayuda a administrar fácilmente múltiples kits de desarrollo de software en Linux. Proporciona una manera conveniente de instalar, cambiar, enumerar y eliminar candidatos. Con SDKMAN, podemos administrar fácilmente versiones paralelas de múltiples SDK. Permite a los desarrolladores instalar kits de desarrollo de software para JVM como Java, Groovy, Scala, Kotlin y Ceylon. También se admiten Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, Vert.x y muchos otros. SDKMAN es una utilidad gratuita, ligera y de código abierto escrita en Bash .
Instalar SDKMAN en Linux
Instalar SDKMAN es trivial. Primero, asegúrese de haber instalado zip y descomprimir aplicaciones Está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux. Por ejemplo, para instalar unzip en sistemas basados en Debian, simplemente ejecute:
$ sudo apt-get install zip unzip
Luego, instale SDKMAN usando el comando:
$ curl -s "https://get.sdkman.io" | bash
Es así de simple. Este comando instalará SDKMAN en $HOME/.sdkman ubicación.
Salida de muestra:
-+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!!!
Una vez completada la instalación, ejecute el siguiente comando para inicializar SDKMAN:
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
Si desea instalarlo en una ubicación personalizada de su elección que no sea $HOME/.sdkman , por ejemplo /usr/local/ , hacer:
$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
Asegúrese de que su usuario tenga todos los derechos de acceso a esta carpeta.
Finalmente, verifique si la instalación se realizó correctamente usando el comando:
$ sdk version
Salida de muestra:
==== 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
¡Felicidades! Se ha instalado SDKMAN. Avancemos y veamos cómo instalar y administrar los SDK.
Administrar varios kits de desarrollo de software mediante SDKMAN
Lista de todos los kits de desarrollo de software (SDK) disponibles
Para ver la lista de todos los candidatos disponibles (SDK), ejecute:
$ sdk list
Salida de muestra:
================================================================================ 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) http://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. :
Como puede ver, SDKMAN enumera un candidato a la vez junto con la descripción del candidato, el sitio web oficial y el comando de instalación. Presione la tecla ENTER para listar los siguientes candidatos. Para cerrarlo, presiona q .
Instalar un nuevo SDK
Para instalar un SDK, por ejemplo, Java JDK, ejecute:
$ sdk install java
Salida de muestra:
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.
Acabamos de instalar Java. Comprobemos su versión:
$ 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)
Si ya hay varios SDK presentes, se le preguntará si desea que la versión instalada actualmente se establezca como predeterminada. . Respondiendo Sí establecerá la versión actualmente instalada como predeterminada.
Instalar una versión específica de SDK
Para instalar una versión particular de un SDK, haga lo siguiente:
$ sdk install ant 1.10.1
El comando anterior instalará Ant versión 1.10.1.
Si ya tiene la instalación local de un candidato específico, puede configurarlo como versión local como se muestra a continuación.
$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT
Lista de versiones candidatas
Para enumerar las versiones de un candidato en particular:
$ sdk list ant
Salida de muestra:
================================================================================ Available Ant Versions ================================================================================ > * 1.10.1 1.10.0 1.9.9 1.9.8 1.9.7 ================================================================================ + - local version * - installed > - currently in use ================================================================================
Como puede ver en el resultado anterior, la hormiga 1.10.1 tiene el prefijo ">" y "*". Aquí,> indica que esta versión está actualmente en uso y el * indica que es la versión predeterminada.
Establecer SDK predeterminado
Como ya dije, si ha instalado varias versiones, SDKMAN le preguntará si desea que la versión actualmente instalada se establezca como predeterminada . Puede responder Sí para configurarlo como predeterminado. Además, puede hacerlo más tarde usando el siguiente comando:
$ sdk default ant 1.9.9
El comando anterior configurará la versión 1.9.9 de Apache Ant como predeterminada.
Usar SDK específico para el shell actual
Puede elegir una versión candidata particular para usar en el shell actual.
$ sdk use ant 1.9.9
Tenga en cuenta que esto hará que la versión dada se use solo en la sesión actual. Para hacerlo permanente, use el comando "predeterminado" como se muestra arriba.
Mostrar versiones actualmente en uso
Para verificar qué está actualmente en uso para un Candidato, por ejemplo, Java, ejecute:
$ sdk current java Using java version 8.0.172-zulu
Para verificar qué está actualmente en uso para todos los Candidatos, por ejemplo, Java, ejecute:
$ sdk current Using: ant: 1.10.1 java: 8.0.172-zulu
Mejorar candidatos
Para actualizar un candidato obsoleto, haga lo siguiente:
$ sdk upgrade scala
También puede verificar qué está desactualizado para todos los candidatos.
$ sdk upgrade
Modo sin conexión
SDKMAN tiene una función de modo sin conexión que permite que SDKMAN funcione cuando se trabaja sin conexión. Puede habilitar o deshabilitar el modo fuera de línea en cualquier momento usando los siguientes comandos:
$ sdk offline enable
$ sdk offline disable
Eliminar los SDK instalados
Para eliminar un SDK instalado, ejecute:
$ sdk uninstall ant 1.9.9
Obtener ayuda
Para mostrar la sección de ayuda, ejecute:
$ 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
Actualizar SDKMAN
El siguiente comando instala una nueva versión de SDKMAN si está disponible.
$ sdk selfupdate
SDKMAN también comprobará periódicamente si hay actualizaciones y te informará con instrucciones sobre cómo actualizar.
WARNING: SDKMAN is out-of-date and requires an update. $ sdk update Adding new candidates(s): scala
Eliminar caché
Se recomienda limpiar la memoria caché que contiene los archivos binarios SDK descargados de vez en cuando. Para hacerlo, simplemente ejecute:
$ sdk flush archives
También es bueno limpiar la carpeta temporal para ahorrar espacio:
$ sdk flush temp
Desinstalar SDKMAN
Si no necesita SDKMAN o no le gusta, elimínelo como se muestra a continuación.
$ tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman $ rm -rf ~/.sdkman
Finalmente, abra su .bashrc (o .bash_profile o .perfil ) archivo:
$ nano ~/.bashrc
Busque y elimine las siguientes líneas.
#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"
Si usa ZSH, elimine las líneas anteriores de .zshrc archivo.
Lectura relacionada:
- Cómo gestionar varias versiones de Java con jEnv en Linux
- Cómo gestionar varias versiones de Python con Pyenv en Linux