1
0
Fork 0

Install bat via cargo on debian (skip apt's batcat rename)

Debian's 'bat' package is renamed 'batcat' to avoid clashing with an
unrelated Debian package. The rename makes .zshrc's 'alias cat=bat'
fail.

Install upstream bat via cargo instead — gets the real binary at
$HOME/.cargo/bin/bat, version-aligned with arch's pacman install.

Drop 'bat' from the debian apt install list (no more batcat conflict
to work around).
This commit is contained in:
Rain 2026-06-21 21:36:00 -04:00
parent 1b3d0796cb
commit a6582de626

View file

@ -43,7 +43,7 @@ sudo apt-get upgrade -y
APT_PKGS=( APT_PKGS=(
zsh tmux git build-essential zsh tmux git build-essential
bat btop htop fastfetch btop htop fastfetch
eza fzf fd-find ripgrep zoxide starship eza fzf fd-find ripgrep zoxide starship
lazygit yt-dlp jq lazygit yt-dlp jq
unzip p7zip unzip p7zip
@ -62,12 +62,13 @@ if command -v fdfind >/dev/null 2>&1 && ! command -v fd >/dev/null 2>&1; then
ln -sf "$(command -v fdfind)" "$USER_HOME/.local/bin/fd" ln -sf "$(command -v fdfind)" "$USER_HOME/.local/bin/fd"
fi fi
# Same treatment for 'bat' (renamed to 'batcat' on Debian to avoid clashing # Debian ships 'bat' as 'batcat' due to a name clash with an unrelated
# with a different unrelated package). .zshrc aliases assume 'bat'. # package. Install upstream 'bat' via cargo so we get the real binary at
if command -v batcat >/dev/null 2>&1 && ! command -v bat >/dev/null 2>&1; then # $HOME/.cargo/bin/bat. Faster than apt's renamed package, version-aligned
log "symlinking batcat -> bat in ~/.local/bin" # with arch's pacman install.
mkdir -p "$USER_HOME/.local/bin" if command -v cargo >/dev/null 2>&1 && ! command -v bat >/dev/null 2>&1; then
ln -sf "$(command -v batcat)" "$USER_HOME/.local/bin/bat" log "installing bat via cargo (upstream, debian renames it to batcat)"
cargo install bat --locked 2>&1 | tail -5
fi fi
# Neovim — install official binary tarball, pinned to a known-good version. # Neovim — install official binary tarball, pinned to a known-good version.