2021-07-22 22:26:21 -07:00
# Core
The core `asdf` command list is rather small, but can facilitate many workflows.
## Installation & Setup
Covered in the [Getting Started ](/guide/getting-started.md ) guide.
## Exec
```shell:no-line-numbers
asdf exec < command > [args...]
```
Executes the command shim for the current version.
<!-- TODO: expand on this with example -->
## Env
```shell:no-line-numbers
asdf env < command > [util]
```
<!-- TODO: expand on this with example -->
## Info
```shell:no-line-numbers
asdf info
```
A helper command to print the OS, Shell and `asdf` debug information. Share this when making a bug report.
## Reshim
```shell:no-line-numbers
asdf reshim < name > < version >
```
This recreates the shims for the current version of a package. By default, shims are created by plugins during installation of a tool. Some tools like the [npm CLI ](https://docs.npmjs.com/cli/ ) allow global installation of executables, for example, installing [Yarn ](https://yarnpkg.com/ ) via `npm install -g yarn` . Since this executable was not installed via the plugin lifecycle, no shim exists for it yet. `asdf reshim nodejs <version>` will force recalculation of shims for any new executables, like `yarn` , for `<version>` of `nodejs` .
## Shim-versions
```shell:no-line-numbers
asdf shim-versions < command >
```
Lists the plugins and versions that provide shims for a command.
As an example, [Node.js ](https://nodejs.org/ ) ships with two executables, `node` and `npm` . When many versions of the tools are installed with [`asdf-nodejs` ](https://github.com/asdf-vm/asdf-nodejs/ ) `shim-versions` can return:
```shell:no-line-numbers
➜ asdf shim-versions node
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0
```
```shell:no-line-numbers
➜ asdf shim-versions npm
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0
```
## Update
`asdf` has a built in command to update which relies on Git (our recommended installation method). If you installed using a different method you should follow the steps for that method:
2022-01-27 06:02:24 -07:00
| Method | Latest Stable Release | Latest commit on `master` |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- |
| asdf (via Git) | `asdf update` | `asdf update --head` |
2021-09-25 20:09:34 -07:00
| Homebrew | `brew upgrade asdf` | `brew upgrade asdf --fetch-HEAD` |
2022-01-27 06:02:24 -07:00
| Pacman | Download a new `PKGBUILD` & rebuild < br /> or use your preferred [AUR helper ](https://wiki.archlinux.org/index.php/AUR_helpers ) | |
2021-07-22 22:26:21 -07:00
## Uninstall
To uninstall `asdf` follow these steps:
::: details Bash & Git
1. In your `~/.bashrc` remove the lines that source `asdf.sh` and the completions:
```shell
2023-01-16 19:37:07 -07:00
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
2021-07-22 22:26:21 -07:00
```
2. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
2021-07-22 22:26:21 -07:00
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
::: details Bash & Git (macOS)
1. In your `~/.bash_profile` remove the lines that source `asdf.sh` and the completions:
```shell
2023-01-16 19:37:07 -07:00
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
2021-07-22 22:26:21 -07:00
```
2. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
2021-07-22 22:26:21 -07:00
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
2022-12-28 18:53:15 -07:00
::: details Bash & Homebrew
1. In your `~/.bashrc` remove the lines that source `asdf.sh` and the completions:
```shell
. $(brew --prefix asdf)/libexec/asdf.sh
. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash
```
Completions may have been [configured as per Homebrew's instructions ](https://docs.brew.sh/Shell-Completion#configuring-completions-in-bash ) so follow their guide to find out what to remove.
2. Uninstall with your package manager:
```shell:no-line-numbers
brew uninstall asdf --force
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2022-12-28 18:53:15 -07:00
```
:::
2021-07-22 22:26:21 -07:00
::: details Bash & Homebrew (macOS)
If using **macOS Catalina or newer** , the default shell has changed to **ZSH** . If you can't find any config in your `~/.bash_profile` it may be in a `~/.zshrc` in which case please follow the ZSH instructions.
1. In your `~/.bash_profile` remove the lines that source `asdf.sh` and the completions:
```shell
2021-08-07 00:43:13 -07:00
. $(brew --prefix asdf)/libexec/asdf.sh
2021-07-22 22:26:21 -07:00
. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash
```
Completions may have been [configured as per Homebrew's instructions ](https://docs.brew.sh/Shell-Completion#configuring-completions-in-bash ) so follow their guide to find out what to remove.
2. Uninstall with your package manager:
```shell:no-line-numbers
brew uninstall asdf --force
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
::: details Bash & Pacman
1. In your `~/.bashrc` remove the lines that source `asdf.sh` and the completions:
```shell
. /opt/asdf-vm/asdf.sh
```
2. Uninstall with your package manager:
```shell:no-line-numbers
pacman -Rs asdf-vm
```
3. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
2021-07-22 22:26:21 -07:00
```
4. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
::: details Fish & Git
1. In your `~/.config/fish/config.fish` remove the lines that source `asdf.fish` :
```shell
source ~/.asdf/asdf.fish
```
and remove completions with this command:
```shell:no-line-numbers
rm -rf ~/.config/fish/completions/asdf.fish
```
2. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
2023-04-18 07:15:15 -07:00
rm -rf (string join : -- $ASDF_DATA_DIR $HOME/.asdf)
2021-07-22 22:26:21 -07:00
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
::: details Fish & Homebrew
1. In your `~/.config/fish/config.fish` remove the lines that source `asdf.fish` :
```shell
2021-08-07 00:43:13 -07:00
source "(brew --prefix asdf)"/libexec/asdf.fish
2021-07-22 22:26:21 -07:00
```
2. Uninstall with your package manager:
```shell:no-line-numbers
brew uninstall asdf --force
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
::: details Fish & Pacman
1. In your `~/.config/fish/config.fish` remove the lines that source `asdf.fish` :
```shell
source /opt/asdf-vm/asdf.fish
```
2. Uninstall with your package manager:
```shell:no-line-numbers
pacman -Rs asdf-vm
```
3. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
2023-04-18 07:15:15 -07:00
rm -rf (string join : -- $ASDF_DATA_DIR $HOME/.asdf)
2021-07-22 22:26:21 -07:00
```
4. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
2021-11-18 03:05:27 -07:00
::: details Elvish & Git
2022-02-11 15:19:55 -07:00
1. In your `~/.config/elvish/rc.elv` remove the lines that use the `asdf` module:
2021-11-18 03:05:27 -07:00
```shell
2022-02-11 15:19:55 -07:00
use asdf _asdf; var asdf~ = $_asdf:asdf~
set edit:completion:arg-completer[asdf] = $_asdf:arg-completer~
2021-11-18 03:05:27 -07:00
```
and uninstall the `asdf` module with this command:
```shell:no-line-numbers
2022-02-11 15:19:55 -07:00
rm -f ~/.config/elvish/lib/asdf.elv
2021-11-18 03:05:27 -07:00
```
2. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
if (!=s $E:ASDF_DATA_DIR "") { rm -rf $E:ASDF_DATA_DIR } else { rm -rf ~/.asdf }
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-11-18 03:05:27 -07:00
```
:::
::: details Elvish & Homebrew
2022-02-11 15:19:55 -07:00
1. In your `~/.config/elvish/rc.elv` remove the lines that use the `asdf` module:
2021-11-18 03:05:27 -07:00
```shell
2022-02-11 15:19:55 -07:00
use asdf _asdf; var asdf~ = $_asdf:asdf~
set edit:completion:arg-completer[asdf] = $_asdf:arg-completer~
2021-11-18 03:05:27 -07:00
```
and uninstall the `asdf` module with this command:
```shell:no-line-numbers
2022-02-11 15:19:55 -07:00
rm -f ~/.config/elvish/lib/asdf.elv
2021-11-18 03:05:27 -07:00
```
2. Uninstall with your package manager:
```shell:no-line-numbers
brew uninstall asdf --force
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-11-18 03:05:27 -07:00
```
:::
::: details Elvish & Pacman
2022-02-11 15:19:55 -07:00
1. In your `~/.config/elvish/rc.elv` remove the lines that use the `asdf` module:
2021-11-18 03:05:27 -07:00
```shell
2022-02-11 15:19:55 -07:00
use asdf _asdf; var asdf~ = $_asdf:asdf~
set edit:completion:arg-completer[asdf] = $_asdf:arg-completer~
2021-11-18 03:05:27 -07:00
```
and uninstall the `asdf` module with this command:
```shell:no-line-numbers
2022-02-11 15:19:55 -07:00
rm -f ~/.config/elvish/lib/asdf.elv
2021-11-18 03:05:27 -07:00
```
2. Uninstall with your package manager:
```shell:no-line-numbers
pacman -Rs asdf-vm
```
3. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
if (!=s $E:ASDF_DATA_DIR "") { rm -rf $E:ASDF_DATA_DIR } else { rm -rf ~/.asdf }
```
4. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-11-18 03:05:27 -07:00
```
:::
2021-07-22 22:26:21 -07:00
::: details ZSH & Git
1. In your `~/.zshrc` remove the lines that source `asdf.sh` and completions:
```shell
2023-01-16 19:37:07 -07:00
. "$HOME/.asdf/asdf.sh"
2021-07-22 22:26:21 -07:00
# ...
fpath=(${ASDF_DIR}/completions $fpath)
autoload -Uz compinit
compinit
```
**OR** the ZSH Framework plugin if used.
2. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
2021-07-22 22:26:21 -07:00
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
::: details ZSH & Homebrew
1. In your `~/.zshrc` remove the lines that source `asdf.sh` :
```shell
2021-08-07 00:43:13 -07:00
. $(brew --prefix asdf)/libexec/asdf.sh
2021-07-22 22:26:21 -07:00
```
2. Uninstall with your package manager:
```shell:no-line-numbers
brew uninstall asdf --force & & brew autoremove
```
3. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
::: details ZSH & Pacman
1. In your `~/.zshrc` remove the lines that source `asdf.sh` :
```shell
. /opt/asdf-vm/asdf.sh
```
2. Uninstall with your package manager:
```shell:no-line-numbers
pacman -Rs asdf-vm
```
3. Remove the `$HOME/.asdf` dir:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
2021-07-22 22:26:21 -07:00
```
4. Run this command to remove all `asdf` config files:
```shell:no-line-numbers
2023-01-16 19:37:07 -07:00
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
2021-07-22 22:26:21 -07:00
```
:::
That's it! 🎉