Installing and updating Quarto on Arch Linux
There are two useful installation paths: an AUR package, or Quarto’s upstream Linux tarball.
AUR
Using an AUR helper:
yay -S quarto-cli-binIf Quarto is installed this way, normal AUR/package updates should handle future versions.
manual user-local install
For a manual installation, download the current Linux AMD64 tarball from the Quarto release page.
A user-local layout avoids a root-owned installation under /opt:
~/.local/opt/quarto/
~/.local/bin/quarto -> ~/.local/opt/quarto/bin/quarto
Extract a downloaded release and create the symlink:
mkdir -p ~/.local/opt ~/.local/bin
tar -xzf ~/Downloads/quarto-VERSION-linux-amd64.tar.gz -C /tmp
rm -rf ~/.local/opt/quarto
mv /tmp/quarto-VERSION ~/.local/opt/quarto
ln -sfn ~/.local/opt/quarto/bin/quarto ~/.local/bin/quartoMake sure ~/.local/bin is on PATH, then check:
quarto checkupdate-quarto script
If using the manual tarball installation, automating updates is still useful.
Create ~/.local/bin/update-quarto:
#!/usr/bin/env bash
set -euo pipefail
INSTALL_DIR="$HOME/.local/opt/quarto"
BIN_LINK="$HOME/.local/bin/quarto"
tmp_dir=$(mktemp -d)
trap 'rm -rf "$tmp_dir"' EXIT
echo "finding latest Quarto release..."
latest_url=$(
curl -fsSL https://api.github.com/repos/quarto-dev/quarto-cli/releases/latest |
sed -n 's/.*"browser_download_url": "\([^"]*linux-amd64\.tar\.gz\)".*/\1/p' |
head -n 1
)
if [[ -z "$latest_url" ]]; then
echo "could not find the latest Linux AMD64 tarball" >&2
exit 1
fi
echo "downloading..."
curl -fL "$latest_url" -o "$tmp_dir/quarto.tar.gz"
echo "extracting..."
tar -xzf "$tmp_dir/quarto.tar.gz" -C "$tmp_dir"
extracted_dir=$(
find "$tmp_dir" -mindepth 1 -maxdepth 1 -type d -name 'quarto-*' |
head -n 1
)
if [[ -z "$extracted_dir" ]]; then
echo "could not find extracted Quarto directory" >&2
exit 1
fi
mkdir -p "$(dirname "$INSTALL_DIR")" "$(dirname "$BIN_LINK")"
echo "installing..."
rm -rf "$INSTALL_DIR"
mv "$extracted_dir" "$INSTALL_DIR"
ln -sfn "$INSTALL_DIR/bin/quarto" "$BIN_LINK"
echo "installed Quarto $("$BIN_LINK" --version)"Make it executable:
chmod +x ~/.local/bin/update-quartoThen update with:
update-quartoThis keeps the useful part of the old updater workflow without requiring sudo or replacing a root-owned /opt/quarto directory.