Ubuntu 24.04's apt versions of fzf/fd/bat/eza/zoxide/ripgrep/tmux/nvim/
lazygit/starship are frozen at April 2024 — and the previous GitHub-
release downloads went stale the moment you stopped re-running the
installer. Homebrew on Linux fixes both: always-latest releases and a
single 'brew upgrade' to update the whole CLI stack.
Two-tier install:
apt - zsh + base plumbing + WezTerm (vendor repo) + Brave Beta
(vendor repo). Vendor repos auto-update via 'apt upgrade'.
brew - fzf fd bat eza zoxide ripgrep tmux neovim lazygit starship
gh zsh-syntax-highlighting zsh-autosuggestions
nvm - official installer (pinned NVM_VERSION)
tpm - tmux plugin manager clone
New files:
install/Brewfile - bundle for 'brew bundle'
install/lib/brew.sh - Homebrew bootstrap + brew bundle
install/lib/extras.sh - nvm + tpm
install/install.sh - rewired entry point with --packages-only,
--dotfiles-only, --help
install/README.md - new docs for the two-tier strategy
.zshrc:
- Source brew shellenv first when present, so brew bins win on PATH
- 'update' alias now: brew upgrade && sudo apt update && sudo apt upgrade
(previously apt-only; before that pacman-only)
Drops install/lib/packages.sh entries that the now-Brewfile-managed tools
duplicated, and removes the GitHub-release tarball install path.
30 lines
789 B
Bash
30 lines
789 B
Bash
#!/bin/bash
|
|
# Per-user helpers not managed by brew: nvm (official installer) + tpm.
|
|
|
|
NVM_VERSION="${NVM_VERSION:-v0.40.1}"
|
|
|
|
install_nvm() {
|
|
if [[ -s $HOME/.nvm/nvm.sh ]]; then
|
|
info "nvm already installed"
|
|
return
|
|
fi
|
|
info "Installing nvm ($NVM_VERSION)..."
|
|
PROFILE=/dev/null bash -c \
|
|
"curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/$NVM_VERSION/install.sh | bash" ||
|
|
warn "nvm install failed (install manually if you need Node)"
|
|
}
|
|
|
|
install_tpm() {
|
|
if [[ -d $HOME/.tmux/plugins/tpm ]]; then
|
|
info "tpm already installed"
|
|
return
|
|
fi
|
|
info "Installing tmux plugin manager..."
|
|
git clone --depth 1 https://github.com/tmux-plugins/tpm \
|
|
"$HOME/.tmux/plugins/tpm" || warn "tpm clone failed"
|
|
}
|
|
|
|
install_all_extras() {
|
|
install_nvm
|
|
install_tpm
|
|
}
|