GNU/Linux >> Tutoriales Linux >  >> Linux

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

Linux
  1. Uso de Stratis para administrar el almacenamiento de Linux desde la línea de comandos

  2. Cómo administrar archivos de registro usando Logrotate en Linux

  3. Los 5 mejores entornos de desarrollo para Linux

  4. Uso de Logrotate en Linux para administrar archivos de registro (con ejemplos)

  5. Inicie instaladores de software en Linux desde Windows usando Cygwin

Cómo administrar los complementos de Vim usando Vundle en Linux

Ejemplos de comandos Tmux para administrar múltiples sesiones de terminal en Linux

Uso de PPA en Ubuntu Linux [Guía completa]

Uso de Cockpit para monitorear y administrar múltiples servidores Linux gráficamente desde un navegador web

ClusterSSH (cssh):administre múltiples sesiones SSH en Linux

Los 10 mejores software de cliente de correo electrónico de Linux para administrar varias cuentas