Administre múltiples kits de desarrollo de software usando SDKMAN en Linux

¿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 Intento .

Instalar SDKMAN en Linux

Instalar SDKMAN es trivial. Primero, asegúrese de haber instalado Código Postal y abrir la cremallera 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 example /usr/local/ hacer:

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

Asegúrese de que su usuario tenga derechos de acceso completo en 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.

Administre varios kits de desarrollo de software con SDKMAN

Enumere 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)                                     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.

:
                    

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 close eso, presione q .

Instalar un nuevo SDK

Para instalar un SDK, por example 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.
                    

Instale un nuevo SDK usando SDKMAN en Linux

Acabamos de instalar Java. Veamos 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 configure como por defecto . respondiendo 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 una 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 configure como por defecto . 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 establecerá Apache Ant versión 1.9.9 por defecto.

Use 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 lo que está actualmente en uso para un candidato, por example Java, ejecuta:

                      
                        $ sdk current java
                      
                      

Using java version 8.0.172-zulu
                    

Para verificar lo que está actualmente en uso para todos los Candidatos, por example Java, ejecuta:

                      
                        $ sdk current
                      
                      

Using:

ant: 1.10.1
java: 8.0.172-zulu
                    

Candidatos de ascenso

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 offline

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
                    

Eliminación de SDK instalados

Para eliminar un SDK instalado, ejecute:

                      $ sdk uninstall ant 1.9.9
                    

Obteniendo 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 verificará periódicamente si hay actualizaciones y le 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_perfil o .perfil ) expediente:

                      $ 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"
                    

Desinstalar SDKMAN en Linux

Si usa ZSH, elimine las líneas anteriores del .zshrc expediente.

Lectura relacionada:

  • Cómo administrar varias versiones de Java con jEnv en Linux
  • Cómo administrar múltiples versiones de Python con Pyenv en Linux

Recursos:

¡Gracias por pasar!

Ayúdanos a ayudarte:

¡¡Que tenga un buen día!!

Related Posts