asdf as environment manager
source link: https://willschenk.com/articles/2021/asdf_as_environment_manager/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Published March 13, 2021 #asdf, #nvm, #rvm, #rbenv
I've switch to using asdf to manage my computers version of different
programming environments. This is both a more unified approach to
using both nvm
and rbenv
, since it handles a lot more programming
languages, but the implementation is also faster.
Installing asdf
Go to the asdf getting started page to get the latest version:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.0
Then add this to your ~/.bashrc
:
. $HOME/.asdf/asdf.sh
Add a plugin
Different languages are supported using plugins, so first we need to install a plugin. For example:
asdf plugin add deno
Updating plugins
asdf
itself has the code to manage the environment directories and
keeping track of the packages. The plugins
know all about a specific
environment. So if you want to get the latest version of, say, deno,
you need to update the plugin because that's where the build
instructions live.
asdf plugin update --all
Installing a version
This will list all available versions for a specific environment:
asdf list all deno
We can install the latest with:
asdf install deno latest
∗ Downloading and installing deno... Archive: /home/wschenk/.asdf/installs/deno/1.8.1/bin/deno.zip inflating: /home/wschenk/.asdf/installs/deno/1.8.1/bin/deno The installation was successful!
We can install a specific version with:
asdf install deno 1.6.3
∗ Downloading and installing deno... Archive: /home/wschenk/.asdf/installs/deno/1.6.3/bin/deno.zip inflating: /home/wschenk/.asdf/installs/deno/1.6.3/bin/deno The installation was successful!
Selecting a version to use
There are 3 different scopes for usage:
global
written into ~/.tool-version
, the default unless overriddenshell
the version that the current shell defaults tolocal
written into $PWD/.tool-version, overridden by directoryIn our case, I'm going to do
asdf global deno 1.6.3
deno --version
deno 1.6.3 (release, x86_64-unknown-linux-gnu) v8 8.8.294 typescript 4.1.3
Conclusion
There seems to be a lot less shell overhead when using asdf
vs rbenv
and all the other ones, so I found that in practice it really sped up
my system when running something that created a lot of subshells
(./configure
for example.)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK