Común
asdf - gestor de versiones

asdf: cómo gestionar python, java y node en un solo lugar

Entre las muchas herramientas de desarrollo, un gestor de versiones es una de las herramientas imprescindibles. En lugar de instalar un gestor de versiones distinto para cada lenguaje, ASDF te ayuda a gestionar múltiples versiones de casi cualquier lenguaje con una sola herramienta. En este artículo, explicaré qué es ASDF y cómo instalarlo.

1. ¿Por qué usar un gestor de versiones?

Cuando empiezas a desarrollar, lo primero que haces es instalar la última versión de tu lenguaje. Más concretamente, el compilador y el runtime para ese lenguaje. Luego instalas el editor y el gestor de paquetes y empiezas a desarrollar.

Pero entonces te encuentras con un problema. El paquete que instalé no soporta la última versión. Dudun. Instalo una versión anterior del paquete porque realmente la necesito. Lo instalo, pero no funciona porque me he equivocado en la configuración del PATH, incluso para la última versión, que funcionaba bien. Como desarrollador, no sé qué hacer.

Esto se podría haber evitado instalando primero el gestor de versiones y luego el lenguaje. A medida que los entornos de desarrollo se vuelven más complejos, las versiones de los idiomas adquieren más importancia. No es raro que ciertos paquetes no soporten correctamente la versión actual, como en el ejemplo anterior, y hay muchos entornos diferentes que los clientes deben tener en cuenta.

Afortunadamente, se han desarrollado gestores de versiones específicos para cada idioma que hacen el trabajo pesado por usted. Sin embargo, hay diferentes tipos de gestores de versiones para diferentes idiomas, y diferentes maneras de utilizarlos, por lo que puede ser agotador reunir información antes incluso de empezar el desarrollo. Es aún más difícil hoy en día si estás desarrollando en varios idiomas al mismo tiempo. Ahí es donde entra en juego el proyecto ASDF.

2. Qué es ASDF

página de introducción de asdf

El ASDF (opens in a new tab) es una plataforma que agrega gestores de versiones de idiomas. Tras instalar asdf, los desarrolladores instalan el plugin asdf para el idioma que desean utilizar. Tras la instalación adecuada, cualquier idioma puede gestionarse con una única API. No hay necesidad de utilizar diferentes herramientas, diferentes configuraciones y diferentes métodos para cada idioma.

Digamos que estás trabajando en un proyecto que utiliza React para el frontend y FastAPI para el backend. Para configurar tu entorno de desarrollo, primero decidirás qué gestor de versiones usar para instalar Nodejs: nvm, n, fnm o volta. Si eliges n, tendrás que pasar algún tiempo instalándolo, configurándolo y aprendiendo a usarlo.

A continuación está Python, y pasarás por el mismo proceso de configuración de tu entorno de desarrollo: pyenv, conda, mamba, etc.

Una vez que hayas instalado asdf, puedes instalar el plugin de Nodejs y el plugin de Python, configurar las versiones como lo harías para cualquier otro lenguaje, y saltar directamente al desarrollo.

Así de sencillo.

3. Ventajas de asdf

En resumen, ASDF es un gestor de versiones todo en uno que, una vez que le coges el truco, te permite instalar y gestionar casi cualquier lenguaje.

Pero eso no es todo. La mayoría de los plugins de ASDF son mantenidos por la comunidad, por lo que es compatible con una amplia gama de herramientas de desarrollo. Gradle para el desarrollo basado en JVM, Deno para Nodejs, awscli y kubecli para la infraestructura, y la mayoría de las otras herramientas que pueda necesitar se incluyen como plugins.

Por último, ASDF te permite establecer la versión de un lenguaje o herramienta de desarrollo por directorio. La versión que establezcas se guarda como un archivo de configuración, lo que te ayuda a ti y a tus compañeros de equipo a utilizar exactamente la misma versión. Los plugins específicos de cada idioma también admiten los archivos de configuración típicos de cada idioma. Si su proyecto contiene archivos comunes .env, .envrc o específicos de herramientas .nvmrc, .node-version o .rbenv, está cubierto por ASDF.

4. Cómo instalar asdf

asdf sólo es compatible con Linux y Mac OS. Para usuarios de Windows, puede instalarlo usando WSL2.

4.1. Instalación de asdf en Mac OS

Para instalar asdf, necesitarás Curl y Git. Estos programas están instalados por defecto en MacOS, pero si no puedes ejecutarlos debido al error xcrun, consulta este post. Hay dos formas de instalar git y homebrew.

Para instalar usando git, escribe el siguiente comando en un terminal

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3

Si instalas usando Homebrew, escribe el siguiente comando en un terminal

brew install asdf

Una vez que hayas hecho esto de cualquier manera, lo último que tienes que hacer es integrarlo para que funcione bien en tu shell. Dependiendo de tu shell, los comandos que necesitas introducir serán diferentes, así que consulta la guía de la web oficial (opens in a new tab) para encontrar la combinación que tienes instalada e introduce esos comandos.

Abajo está mi ejemplo. Usé Fish shell y Homebrew.

instalar asdf desde fish shell&homebrew

Como se muestra a continuación, si no aparece ningún mensaje de error, la instalación ha ido bien.

asdf shell setup complete

Ahora verifique la instalación ejecutando el comando verify version. Por favor, vaya a la Sección 5 para ver el proceso desde la instalación del plugin en adelante.

mac asdf version check

4.2. Cómo instalar asdf en Windows

Abra un intérprete de comandos en WSL para instalar asdf.

Si estás usando la última versión de Windows, estás usando WSL2. Estoy ejecutando Windows en Mac OS Parallels y WSL2 está actualmente bloqueado, así que procedí con WSL versión 1.

Si aún no tienes instalado WSL, ve a la Tienda Microsoft: página Windows Subsystem for Linux (opens in a new tab) e instálalo, Descarga Ubuntu de la Tienda Microsoft: Ubuntu (opens in a new tab). También hay disponibles otras distribuciones de Linux.

Ejecute el Ubuntu instalado y un shell Bash le estará esperando. Ejecute el siguiente comando para instalar ASDF

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3

Resultado: Instalando asdf con git

Una vez hecho esto, añade las dos líneas siguientes al final de tu archivo ~/.bashrc. Estos son los pasos para habilitar ASDF en el shell.

. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"

Captura de pantalla de la adición usando el editor Vim: Añadir configuración asdf bash

Ahora reinicie Ubuntu y compruebe la versión de ASDF.

Comprobar la versión asdf de windows

5. Cómo usar ASDF

Veamos cómo usar ASDF instalando el plugin NodeJS y actualizando a la última versión. Funciona igual en Mac y Windows, y yo lo haré en Mac.

El plugin asdf se mantiene en Github, Puedes ver la lista de plugins disponibles para instalar de un vistazo en el asdf-vm/asdf-plugins repo (opens in a new tab).

El comando para instalar el plugin nodejs se muestra a continuación.

asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

Resultado de la ejecución: asdf node versions

Después de instalar el plugin, te dará una lista de todos los nodejs disponibles para descargar, y hay toneladas de versiones. Instala la última. Ejecuta asdf install [plugin_name] [version_name] para instalarlo. Esto es lo que parece después de la instalación.

Instalando la última versión de asdf nodejs](/images/all-lang/asdf/9.webp)

Usemos la versión instalada en el shell actual.

asdf shell nodejs result

También puede estar disponible en el directorio actual o en todo el sistema operativo, dependiendo de los comandos en asdf.

6. Conclusión

Hasta ahora hemos visto cómo instalar asdf para cada sistema operativo y un breve repaso de cómo usarlo. Para un recorrido más detallado, volveré con un post que cubra la configuración de un entorno de desarrollo para cada lenguaje.

Personalmente, soy muy curioso acerca de las herramientas de desarrollo, y creo que he probado todos los gestores de versiones populares para cada idioma que he utilizado. No suelo confiar en las herramientas de talla única, pero he estado usando ASDF durante un tiempo sin ningún problema. Lo recomiendo encarecidamente a cualquiera que desarrolle regularmente para múltiples plataformas y en múltiples idiomas.

copyright for asdf install

© 2023 All rights reserved.