asdf para manejar varias versiones de tus herramientas
Cuando realizamos desarrollo en nuestra máquina local, es normal que trabajemos en varios proyectos, algunos proyectos más antiguos otros más nuevos, hay veces que tenemos que volver a proyectos antiguos a realizar alguna modificación, pero como ya actualizamos ciertas herramientas a las nuevas versiones, estos proyectos dejan de funcionar.
La solución para esto personalmente creo que es docker, pero si por algún motivo no es una opción para tí, otra solución que funciona bastante bien es asdf es un manejador de versiones de diferentes herramientas, ha habido muchos de este tipo de paquetes en el pasado para manejar herramientas específicas como rvm, rbenv y ruby-build para ruby, nvm o volta para nodejs.
La mejor parte de asdf es que es extendible, es decir que a través de plugins puede aprender
como manejar varias versiones de diferentes paquetes. Aquí una lista de los plugins que tiene: plugins asdf
La página de instalación indica como se puede instalar y agregarlo a tu shell.
Para agregar un plugin se usa:
asdf plugin add nodejs
Instalar la última versión:
asdf install nodejs latest
Instalar una versión específica:
asdf install nodejs 14
Mostrar versiones instaladas:
asdf list nodejs
10.12.0
10.13.0
12.13.0
14.2.0
Para usar una versión específica se puede usar asdf global, local o shell
asdf global nodejs 14
crea el archivo $HOME/.tool-versions con ese valor y se usara esa como defecto
asdf local nodejs 14
crea el archivo ./.tool-versions en el directorio donde lo llamaron con ese valor y se usará esa como defecto cuando se ingresa en ese directorio, esto es bueno para manejar distintos proyectos, la versión queda especificada en ese archivo.
asdf shell nodejs 14
permite utilizar esa versión durante la sesión de shell activa en ese momento, el rato que cierres el terminal se pierde la configuración.
asdf current
nos muestra las versiones seleccionadas en este momento.