# Install dependencies
sudo apt install curl git
# Download asdf: <https://asdf-vm.com/guide/getting-started.html>
git clone <https://github.com/asdf-vm/asdf.git> ~/.asdf --branch v0.12.0
# Add these to ~/.bashrc
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
export PATH="/home/[username]/.local/bin:$PATH"
# Run this command
source ~/.bashrc

Adding Plugin

# Example: Add Python plugin
asdf plugin add python
# Check versions
asdf list all python
# Install dependecies <https://github.com/pyenv/pyenv/wiki#suggested-build-environment>
sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \\
libbz2-dev libreadline-dev libsqlite3-dev curl \\
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# Install Python version
asdf install python 3.10.13
# If you get error of "no version is set for command python" use this
asdf global python 3.10.13
# If you need to set some specific python version for a project you could 
asdf local python 3.10.13 # first install that version

Check Path

asdf which python
# Example end path
# ~/.asdf/installs/python/3.10.13/bin/python

If you gonna use virtualenv

# Update this after changing python version
asdf reshim python
pip install virtualenv

DOCUSARIUS

# After installing Asdf;
npm install --global yarn # Like npx
source ~/.bashrc # If you have asdf in bashrc, it needs to be refreshed
yarn # Building packages (It may take time)
yarn start # Starting the development server on a port.