Estrategias de ramificación: Git-flow / trunk-based development
Licencias de Código Abierto para Desarrolladores

Guía del comando asdf

comando asdf

asdf es una herramienta de interfaz de línea de comandos, o CLI, para administrar diferentes versiones de herramientas (tool version manager) utilizada en el desarrollo de software y la administración de entornos de desarrollo. Su objetivo principal es simplificar la gestión de las versiones de las herramientas utilizadas en un proyecto, como lenguajes de programación, sistemas de compilación, intérpretes y otras utilidades relacionadas.

Unifica todos los runtimes bajo un archivo de configuración y utiliza una estructura de complementos para administrar todo con una sola herramienta. Por ejemplo, puedes instalar Node.js, pero luego tener asdf como un repositorio central de complementos, siendo cada complemento mantenido oficialmente o por colaboradores de la comunidad.

En este artículo veremos como instalar asdf y lo usaremos para instalar varias versiones de Node.js con las dependencias de compilación, que es el mínimo requerido para su funcionalidad. Luego, administraremos las versiónes a usar, dependiendo del alcance deseado.

Índice

Instalar asdf

asdf depende de la instalación de un núcleo que, por sí solo, no tiene funcionalidad. El núcleo de asdf depende de complementos separados que son específicos para un lenguaje de programación o programa determinado. Comúnmente, se utiliza para instalar y administrar múltiples versiones de un lenguaje de programación específico.

En mi caso utilizaré Ubuntu 22.04, pero podéis usar cualquier modo de instalación que indican en su página oficial, según el SO, el sistema de descarga y el tipo de shell. Se recomienda descargar con git para facilitar las futuras actualizaciones. Git en Ubuntu 22.04 viene instalado, así que vamos al lío.

Para obtener la última versión de asdf, clona la última rama del repositorio de asdf:

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

asdf requiere una instalación única según la combinación de tipo de shell y el método con el que se haya descargado. Por defecto, Ubuntu utiliza Bash como su shell, que utiliza el archivo ~/.bashrc para la configuración y personalización. Para habilitar el uso del comando tendrás que agregar la siguiente línea en las opciones de las shell:

echo ". $HOME/.asdf/asdf.sh" >> ~/.bashrc

A continuación, asegúrate de que los cambios se apliquen a tu sesión actual:

source ~/.bashrc

Nota: Si utilizas ZSH en lugar de Bash, puedes agregar la misma línea al archivo ~/.zshrc en su lugar.

Con el núcleo instalado, ahora puedes instalar el complemento.

Instalar el Complemento asdf de Node.js y las Dependencias de Compilación

La instalación del complemento para Node.js en asdf no es lo mismo que instalar Node.js por sí mismo. Eso ocurrirá en el próximo paso. Los requisitos mínimos para una configuración utilizable de asdf son el núcleo de asdf y al menos un complemento. Una vez que instales este complemento, podrás usarlo para instalar el runtime que gestiona.

Cada complemento de asdf se mantiene por separado. Algunos son mantenidos por el equipo central de asdf, pero la mayoría son mantenidos por la comunidad. Cada complemento de asdf tiene su propio repositorio y dependencias que deben instalarse. Debes verificar cada repositorio de complemento, como el repositorio de complemento de Node.js. Este complemento en particular es mantenido oficialmente por el equipo de asdf.

Para instalar el complemento, utiliza el siguiente comando de asdf plugin add:

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

Para este complemento de Node.js, las dependencias se mencionan en la sección «Uso» de su archivo «README». En esa sección, las dependencias explícitas están vinculadas en la sección de los repositorios oficiales de Node.js sobre cómo compilar Node.js.

Esto debe hacerse manualmente porque asdf es una solución dirigida a múltiples sistemas operativos, cada uno con sus propias dependencias únicas y métodos para instalarlas. Esto también puede variar de un complemento a otro. Para este complemento en Ubuntu, necesitas instalar estas dependencias. Comienza actualizando el índice de fuentes de apt:

sudo apt update

Luego, puedes instalar las dependencias necesarias:

sudo apt install python3 g++ make python3-pip

Para este complemento de Node.js, dependiendo de la versión que necesites instalar, elegirá binarios precompilados o compilará binarios desde el origen. Si eliges una versión que requiere compilación desde el origen, se requerirán las dependencias mencionadas anteriormente.

Con el complemento instalado correctamente, ahora puedes instalar Node.js.

Instalar Node.js

Puedes instalar varias versiones de Node.js, eligiendo entre la última versión o versiones específicas. Para instalar la última versión de Node.js, ingresa lo siguiente:

asdf install nodejs latest

Output:

Intentando actualizar node-build... ok
Descargando node-v18.10.0-linux-x64.tar.gz...
-> https://nodejs.org/dist/v18.10.0/node-v18.10.0-linux-x64.tar.gz
Instalando node-v18.10.0-linux-x64...
Node-v18.10.0-linux-x64 instalado en /home/sammy/.asdf/installs/nodejs/18.10.0

La instalación de la última versión es un atajo proporcionado por asdf, no es una versión especial. asdf identifica y aplica versiones según sus números exactos. Para instalar una versión específica de Node.js, ingresa lo siguiente:

asdf install nodejs 16.6.0

Output:

Intentando actualizar node-build... ok
Descargando node-v16.16.0-linux-x64.tar.gz...
-> https://nodejs.org/dist/v16.16.0/node-v16.16.0-linux-x64.tar.gz
Instalando node-v16.16.0-linux-x64...
Node-v16.16.0-linux-x64 instalado en /home/sammy/.asdf/installs/nodejs/16.16.0

Con estas dos versiones instaladas, puedes verificar todas las versiones que tienes con el siguiente comando:

asdf list nodejs

Output:

16.16.0
18.10.0

Además, si alguna vez deseas eliminar una versión, puedes usar el comando de desinstalación con un objetivo de versión específico:

asdf uninstall nodejs 16.16.0

Ahora que Node.js está instalado, puedes elegir la versión que deseas activar.

Elegir la Versión Activa de Node.js

Puedes establecer la versión de Node.js en tres niveles diferentes: local, global y de shell. Si solo deseas establecer la versión de Node.js para el directorio de trabajo de tu proyecto, ejecuta lo siguiente:

asdf local nodejs latest

Establecer la versión actual a nivel global actúa a nivel de usuario para tu sistema:

asdf global nodejs latest

Si solo deseas establecer la versión para la sesión actual de la shell, ingresa lo siguiente:

asdf shell nodejs latest

Ahora tienes una instalación completa de Node.js usando asdf, con la capacidad de cambiar a la versión que necesitas en el alcance que desees.

Nota: Puedes tener conflicto si anteriormente ya tenías instalado nodejs con otro gestor de paquetes. Esto tan solo lo he visto con lenguajes de programación.

Control de las versiones y otras opciones

Comprueba los plugins que tienes instalados:

asdf current

Comprueba las versiones instaladas:

asdf list nodejs

Comprueba todas las versiones disponibles

asdf list all nodejs

Actualizar asdf:

asdf update

Actualizar todos los plugins:

asdf plugin update --all

Más opciones con help:

version: v0.12.0-816195d

MANAGE PLUGINS
asdf plugin add  []      Add a plugin from the plugin repo OR,
                                        add a Git repo as a plugin by
                                        specifying the name and repo url
asdf plugin list [--urls] [--refs]      List installed plugins. Optionally show
                                        git urls and git-ref
asdf plugin list all                    List plugins registered on asdf-plugins
                                        repository with URLs
asdf plugin remove                Remove plugin and package versions
asdf plugin update  []   Update a plugin to latest commit on
                                        default branch or a particular git-ref
asdf plugin update --all                Update all plugins to latest commit on
                                        default branch


MANAGE PACKAGES
asdf current                            Display current version set or being
                                        used for all packages
asdf current                      Display current version set or being
                                        used for package
asdf global              Set the package global version
asdf global  latest[:]   Set the package global version to the
                                        latest provided version
asdf help  []            Output documentation for plugin and tool
asdf install                            Install all the package versions listed
                                        in the .tool-versions file
asdf install                      Install one tool at the version
                                        specified in the .tool-versions file
asdf install             Install a specific version of a package
asdf install  latest[:]  Install the latest stable version of a
                                        package, or with optional version,
                                        install the latest stable version that
                                        begins with the given string
asdf latest  []          Show latest stable version of a package
asdf latest --all                       Show latest stable version of all the
                                        packages and if they are installed
asdf list  [version]              List installed versions of a package and
                                        optionally filter the versions
asdf list all  []        List all versions of a package and
                                        optionally filter the returned versions
asdf local               Set the package local version
asdf local  latest[:]    Set the package local version to the
                                        latest provided version
asdf shell               Set the package version to
                                        `ASDF_${LANG}_VERSION` in the current shell
asdf uninstall           Remove a specific version of a package
asdf where  []           Display install path for an installed
                                        or current version
asdf which                     Display the path to an executable


UTILS
asdf exec  [args...]           Executes the command shim for current version
asdf env  [util]               Runs util (default: `env`) inside the
                                        environment used for command shim execution.
asdf info                               Print OS, Shell and ASDF debug information.
asdf reshim              Recreate shims for version of a package
asdf shim-versions             List the plugins and versions that
                                        provide a command
asdf update                             Update asdf to the latest stable release
asdf update --head                      Update asdf to the latest on the master branch

RESOURCES
GitHub: https://github.com/asdf-vm/asdf
Docs:   https://asdf-vm.com

"Late but latest"
-- Rajinikanth

Más apuntes

Invítame a un café con bitcoins:
1QESjZDPxWtZ9sj3v5tvgfFn3ks13AxWVZ

Bitcoins para café
También puedes invitarme a algo para mojar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar