* fix: remove automatic compinit Raised by concerns in https://github.com/asdf-vm/asdf/issues/674 about performance implications and unexpected intrusive behaviour * docs: fix ZSH compinit recommendations * docs: clarify zsh completions further * docs: fpath steps and notes on framework plugins * docs: be verbose in explanation * fix: remove fpath & compinit calls
5.8 KiB
Install asdf-vm
** Git **
Clone only the latest branch:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.7
Alternately, you can clone the whole repo and checkout the latest branch:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
cd ~/.asdf
git checkout "$(git describe --abbrev=0 --tags)"
** Homebrew **
Install using the Homebrew package manager on macOS:
brew install asdf
To use the latest changes, you can point Homebrew to the master branch of the repo:
brew install asdf --HEAD
Add to your Shell
** Bash on Linux **
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
** Bash on macOS **
Installation via Git:
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profile
Note if you are using Catalina or newer, the default shell has changed to Zsh:
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.zprofile
Installation via Homebrew:
?> If you have Homebrew's Bash completions configured, the second line below is unnecessary. See Configuring Completions in Bash in the Homebrew docs.
echo -e "\n. $(brew --prefix asdf)/asdf.sh" >> ~/.bash_profile
echo -e "\n. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash" >> ~/.bash_profile
** ZSH **
Installation via Git:
Source the asdf.sh
script in your shell config:
echo -e "\n. $HOME/.asdf/asdf.sh" >> ~/.zshrc
or use a framework plugin like asdf for oh-my-zsh which will source this init script and setup completions.
ZSH Completions:
asdf ships with ZSH completions which will need to be setup if you're not using a ZSH framework plugin that does this for you. Add the following to your .zshrc
:
# append completions to fpath
echo -e "\nfpath=(${ASDF_DIR}/completions $fpath)" >> ~/.zshrc
# initialise completions with ZSH's compinit
echo -e "\nautoload -Uz compinit && compinit" >> ~/.zshrc
- if you are using a custom
compinit
setup, ensurecompinit
is below your sourcing ofasdf.sh
- if you are using a custom
compinit
setup with a ZSH framework, ensurecompinit
is below your sourcing of the framework - if you are using a ZSH framework with an asdf plugin, then you shouldn't need to manually add
fpath
, the plugin may need to be updated to use the new ZSH completions properly
Installation via Homebrew:
echo -e "\n. $(brew --prefix asdf)/asdf.sh" >> ~/.zshrc
Shell completions should automatically be installed and available.
** Fish **
Installation via Git:
echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish
mkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
Installation via Homebrew:
?> Homebrew takes care of installing the completions for fish shell. Friendly!
echo "source "(brew --prefix asdf)"/asdf.fish" >> ~/.config/fish/config.fish
Restart your shell so that PATH changes take effect. (Opening a new terminal tab will usually do it.)
Having Issues?
!> If you're having issues with it not detecting the shims you've installed it's most-likely due to the sourcing of above asdf.bash
or asdf.fish
not being at the BOTTOM of your ~/.bash_profile
, ~/.zshrc
, or ~/.config/fish/config.fish
. It needs to be sourced AFTER you have set your $PATH.
and AFTER you have sourced your framework (oh-my-zsh etc).
Plugin Dependencies
?> For most plugins, it is good if you have installed the following packages OR their equivalent on your OS
** macOS **
Installation via Homebrew:
brew install \
coreutils automake autoconf openssl \
libyaml readline libxslt libtool unixodbc \
unzip curl
Installation via Spack:
spack install \
coreutils automake autoconf openssl \
libyaml readline libxslt libtool unixodbc \
unzip curl
** Ubuntu **
sudo apt install \
automake autoconf libreadline-dev \
libncurses-dev libssl-dev libyaml-dev \
libxslt-dev libffi-dev libtool unixodbc-dev \
unzip curl
Fedora
sudo dnf install \
automake autoconf readline-devel \
ncurses-devel openssl-devel libyaml-devel \
libxslt-devel libffi-devel libtool unixODBC-devel \
unzip curl
That's all! You are ready to use asdf 🎉
?> If you're migrating from other tools and want to use your existing .node-version
or .ruby-version
version files, look at the legacy_version_file
flag in the configuration section.
Update
** Git **
asdf update
If you want the latest changes that aren't yet included in a stable release:
asdf update --head
** Homebrew **
brew upgrade asdf
Remove
Uninstalling asdf
is as simple as:
-
In your
.bashrc
(or.bash_profile
if you are on OSX) or.zshrc
find the lines that sourceasdf.sh
and the autocompletions. The lines should look something like this:. $HOME/.asdf/asdf.sh . $HOME/.asdf/completions/asdf.bash
Remove these lines and save the file.
-
Run
rm -rf ~/.asdf/ ~/.tool-versions
to completely remove all the asdf files from your system. -
(Optional) If you installed asdf using a package manager, you may want to use that package manager to uninstall the core asdf files.
That's it! 🎉