Asdf is a version manager promising to replace all the version managers
November 8, 2020
Asdf is a tool for managing versions. It lets you manage versions for a bunch of different things, with just one version manager. (Instead of installing nvm and rbenv and pyenv and and and)
# It has comments
Asdf supports comments - lines starting with #
are comments. At first this wasn’t working for me - which made me realized the version that had been installed by the setup script I ran on my new work computer was old. I ran asdf update
and then I could comment.
# It supports project-level config
Docs on configuration suggest that an .asdfrc
file must exist at $HOME/.asdfrc
if you want to have configuration. But if you’re working on a project with others and want to change a setting (perhaps to set legacy_version_file=yes
, so you can keep the source of truth for the ruby version in .ruby-version
), you can also create a file called .asdfrc
in the root of your project. And when you run asdf install
there, those config options will be respected.
This isn’t working perfectly - I set the postgres version in myproject/.asdrfc
and asdf gave me the right version, but when I ran bundle install
in the same directory (using a legacy version of ruby & rails many other things probably; this could be fixed in current version), the pg
gem compilation wasn’t finding the right version of postgres, and I had to place the version in the $HOME/.asdfrc
directory anyways. There's probably another/better workaround, but it works for me for now. Even though it's currently a bit hacky, I like that the correct version for a given project can be listed right there in the project repository for others to read from.