A deep dive into asdf and version managers
Version managers are useful tools for managing different versions of programming languages and their associated tooling across multiple projects. They create project-specific environments where an explicitly defined tool version is active, not the system-wide installation. This helps to prevent hard-to-debug issues caused by version mismatches between local development, continuous integration (CI), and production environments. Some popular version managers include rbenv for Ruby, pyenv for Python, nvm for Node.js, fvm for Flutter, and mise for multiple languages in one tool. These tools work by hijacking the shell to delegate commands to the right version of a programming language or tool. They also record selected tool versions in config files and use shims to override the definition of certain binaries in the current shell environment.
Company
Bitrise
Date published
Sept. 26, 2024
Author(s)
Oliver Falvai
Word count
2357
Hacker News points
None found.
Language
English