es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo preinstalar sbt en una instancia de AWS EC2 (a través de los datos de usuario)?

Lo que traté hasta ahora sin éxito dentro de la sección de datos de usuario de AWS EC2:

#!/bin/bash    
sudo curl -s "https://get.sdkman.io" | bash

#!/bin/bash
sudo curl --output-dir "/home/ec2-user/" -s "https://get.sdkman.io" | bash

El problema es que la carpeta “.sdkman” en los casos anteriores no se almacena dentro de /home/ec2-user/.sdkman, sino que siempre se almacena dentro de la carpeta raíz bajo /.sdkman para un lanzamiento automatizado de la instancia EC2 con datos de usuario. (La instalación manual a través de la línea de comandos, por otro lado, funcionaría)

Lo que falla es que el siguiente comando para instalar sbt a través de los datos de usuario no funciona:

source "/home/ec2-user/.sdkman/bin/sdkman-init.sh"

(Aceptando que la carpeta .sdkman se encuentra dentro de la carpeta raíz) También intenté en su lugar usar:

source ".sdkman/bin/sdkman-init.sh"

source "/.sdkman/bin/sdkman-init.sh"

Pero esto no funciona y devuelve el siguiente error:

find: '/home/ec2-user/.sdkman/src': No such file or directory
find: '/home/ec2-user/.sdkman/ext': No such file or directory
touch: cannot touch '/home/ec2-user/.sdkman/var/delay_upgrade': No such file or directory
-bash: /home/ec2-user/.sdkman/var/candidates: No such file or directory
-bash: __sdkman_echo_debug: command not found

Parece que con el comando source no puedo ir más allá de /home/ec2-user/ ya que siempre se agrega de nuevo al camino.

Recursos adicionales:

https://sdkman.io/install

Instancia de AWS EC2: Amazon Linux 2 AMI (HVM) – Kernel 5.10 // t3a.xlarge

¡Cualquier ayuda sobre cómo puedo instalar sbt en una instancia de AWS EC2 automatizada a través de los datos de usuario es muy apreciada!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el script de datos del usuario que intenta instalar SDKMAN y sbt en la instancia de EC2. El problema es que la ruta de instalación para SDKMAN no está configurada en la ubicación deseada, es decir, el directorio /home/ec2-user. En su lugar, la instalación de SDKMAN siempre se almacena en la carpeta raíz /.

    Una posible solución a este problema es modificar el script de datos del usuario para establecer explícitamente la ruta de instalación de SDKMAN en /home/ec2-user. Esto se puede hacer modificando la primera línea del script de la siguiente manera:

    #!/bin/bash    
    export SDKMAN_DIR="/home/ec2-user/.sdkman"
    sudo curl -s "https://get.sdkman.io" | bash
    

    Esto asegurará que SDKMAN se instale en el directorio correcto. Una vez que se haya instalado SDKMAN, puedes proceder a instalar sbt usando los siguientes comandos:

    source "/home/ec2-user/.sdkman/bin/sdkman-init.sh"
    sdk install sbt
    

    Ten en cuenta que debes fuente el script de inicialización de SDKMAN antes de instalar sbt. También asegúrate de que el script de datos del usuario tenga permiso de ejecución.

    Espero que esto te ayude a instalar sbt en tu instancia de AWS EC2. Avísame si tienes alguna pregunta adicional.

Comments are closed.