How to Use the asdf Command (with examples)
asdf is a command-line interface that helps manage different versions of packages. This tool is particularly useful when you work with multiple projects that require different versions of the same package. In this article, we will explore different use cases of the asdf command with examples to illustrate how it can be beneficial in managing packages efficiently.
Use Case 1: List all available plugins
asdf plugin list all
lists all the available plugins that can be installed and managed using asdf. This command is helpful when you want to explore the packages that can be managed using asdf.
Motivation: Understanding the available plugins helps you determine which packages can benefit from version management.
Example:
$ asdf plugin list all
elixir
erlang
golang
...
Use Case 2: Install a plugin
asdf plugin add name
is used to install a specific plugin, where name
refers to the name of the plugin you want to add. Installing a plugin allows you to manage versions of packages associated with that plugin.
Motivation: Installing a plugin enables you to manage packages specific to a certain language or tool.
Example:
$ asdf plugin add ruby
Plugin ruby added. Please restart your shell to start using ruby.
Use Case 3: List all available versions for a package
asdf list all name
displays all the available versions for a particular package, where name
is the name of the package you want to list the versions for. This command is useful when you want to know the available versions before installing a specific version.
Motivation: Determine the available versions before installing to ensure compatibility or to choose a specific version for your project.
Example:
$ asdf list all python
1.0.0
1.1.0
1.2.0
...
Use Case 4: Install a specific version of a package
asdf install name version
is used to install a specific version of a package, where name
is the name of the package and version
is the desired version to be installed. This command allows you to manage multiple versions of the same package and switch between them easily.
Motivation: Installing a specific package version ensures compatibility with your project’s dependencies or to test against different versions.
Example:
$ asdf install nodejs 14.17.0
Downloading Node.js version 14.17.0...
...
Use Case 5: Set global version for a package
asdf global name version
sets the global version for a package, where name
is the package name and version
is the desired version to be set as the global default. The global version is used by default when you don’t specify a version explicitly in your project.
Motivation: Setting a global version makes it easier to manage different projects using the same package without having to specify the version every time.
Example:
$ asdf global python 3.9.7
Global version for python set to 3.9.7
Use Case 6: Set local version for a package
asdf local name version
sets the local version for a package within a specific project, where name
is the package name and version
is the desired version to be set for that project. The local version takes precedence over the global version for that specific project.
Motivation: Setting a local version allows you to have different versions of the same package for different projects, ensuring compatibility requirements are met.
Example:
$ cd myproject
$ asdf local ruby 2.7.4
Local version for ruby set to 2.7.4 in ~myproject.
In conclusion, asdf is a powerful command-line tool that simplifies managing different versions of packages. Whether you need to explore available plugins, install specific versions, or set global and local versions, asdf provides the flexibility to manage package versions effectively for multiple projects.