Packages
Matrix of packages to install with different package managers.
name | apt | brew | python | snap | script |
---|---|---|---|---|---|
1password-cli | ✔️ | ✔️ | |||
age | ✔️ | ✔️ | |||
apt-transport-https | ✔️ | ||||
autorestic | ✔️ | ✔️ | |||
bazel | ✔️ | ||||
build-essential | ✔️ | ||||
code | ✔️ | ||||
code-cli | ✔️ | ||||
commitizen | ✔️ | ||||
containerd.io | ✔️ | ||||
copier | ✔️ | ✔️ | |||
coreutils | ✔️ | ||||
direnv | ✔️ | ✔️ | |||
docker-ce | ✔️ | ||||
docker-ce-cli | ✔️ | ||||
docker-compose-plugin | ✔️ | ||||
doppler | ✔️ | ||||
dopplerhq/cli/doppler | ✔️ | ||||
dotdrop | ✔️ | ✔️ | |||
file | ✔️ | ||||
findutils | ✔️ | ||||
font-fira-code | ✔️ | ||||
font-fira-code-nerd-font | ✔️ | ||||
fzf | ✔️ | ✔️ | |||
gh | ✔️ | ✔️ | |||
git-sizer | ✔️ | ✔️ | |||
git-workspace | ✔️ | ||||
gitmojify | ✔️ | ||||
gnupg | ✔️ | ||||
go | ✔️ | ✔️ | |||
go-task | ✔️ | ✔️ | |||
google-perftools | ✔️ | ||||
gpa | ✔️ | ||||
gpg-suite | ️✔️ | ||||
helm | ✔️ | ✔️ | |||
jq | ✔️ | ✔️ | |||
locales | ✔️ | ||||
locales-all | ✔️ | ||||
lsb-release | ✔️ | ||||
microk8s | ✔️ | ✔️ | |||
mypy | ✔️ | ||||
ngrok | ✔️ | ||||
node | ✔️ | ||||
openssh-server | ✔️ | ||||
pass | ✔️ | ✔️ | |||
pinentry-curses | ✔️ | ||||
pinentry-mac | ✔️ | ||||
pip | ✔️ | ||||
pipx | ✔️ | ✔️ | |||
poethepoet | ✔️ | ✔️ | |||
poetry | ✔️ | ||||
pre-commit | ✔️ | ||||
procps | ✔️ | ||||
python3-dev | ✔️ | ||||
python3-pip | ✔️ | ||||
python3-setuptools | ✔️ | ||||
python3-testresources | ✔️ | ||||
python3-venv | ✔️ | ||||
restic | ✔️ | ||||
rust | |||||
sdkman | ️✔️ | ||||
seahorse | ✔️ | ||||
serviceman | ✔️ | ||||
setuptools | ✔️ | ||||
snapd | ✔️ | ||||
sops | ✔️ | ||||
stow | ✔️ | ✔️ | |||
tmux | ✔️ | ✔️ | |||
tree | ✔️ | ✔️ | |||
tzdata | ✔️ | ||||
unzip | ✔️ | ✔️ | |||
vim | ✔️ | ||||
webi | ✔️ | ||||
xclip | ✔️ | ||||
yq | ✔️ | ✔️ | |||
zip | ✔️ | ||||
zsh | ✔️ | ✔️ |
Configuration
DOTFILES_VERSION: 0.40.0
packages:
- name: 1password-cli
apt: true
brewcask: true
keyring_file: 1password-archive-keyring.gpg
keyring_url: https://downloads.1password.com/linux/keys/1password.asc
source_list_file: 1password.list
source_list_line: "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/amd64 stable main"
scope: optional
allow_upgrade: true
- name: age
brew: true
scope: minimal
- name: apt-transport-https
apt: true
scope: minimal
- name: autorestic
brew: true
script: true
script_cmd: install-autorestic
scope: optional
- name: bazel
apt: true
keyring_file: bazel-archive-keyring.gpg
keyring_url: https://bazel.build/bazel-release.pub.gpg
source_list_file: bazel.list
source_list_line: "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8"
scope: full
- name: build-essential
apt: true
scope: minimal
- name: bzip2
apt: true
brew: true
scope: minimal
- name: cloudflared
script: true
script_cmd: install-cloudflared
scope: optional
- name: code
apt: true
keyring_file: packages.microsoft.gpg
keyring_url: https://packages.microsoft.com/keys/microsoft.asc
source_list_file: vscode.list
source_list_line: "deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main"
scope: optional
- name: code-cli
brew: true
scope: optional
- name: codecov-cli
pipx: true
check_installed: command -v codecovcli &>/dev/null
scope: optional
- name: commitizen
brew: false
pipx: true
check_installed: command -v cz &>/dev/null
scope: optional
- name: containerd.io
apt: true
scope: system
- name: coreutils
brew: true
scope: minimal
- name: copier
brew: false
pipx: true
scope: full
allow_upgrade: true
- name: cz-conventional-gitmoji
pipx: true
check_installed: command -v gitmojify &>/dev/null
scope: optional
- name: direnv
apt: true
brew: true
scope: minimal
- name: docker-ce
apt: true
apt_remove: docker
keyring_file: docker.gpg
keyring_url: https://download.docker.com/linux/ubuntu/gpg
source_list_file: docker.list
source_list_line: "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
scope: system
- name: docker-ce-cli
apt: true
scope: system
- name: docker-compose-plugin
apt: true
scope: system
- name: doppler
apt: true
brew: true
keyring_file: doppler-archive-keyring.gpg
keyring_url: https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key
source_list_file: doppler-cli.list
source_list_line: "deb [signed-by=/usr/share/keyrings/doppler-archive-keyring.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main"
scope: optional
- name: dotdrop
brew: false
pipx: true
scope: optional
allow_upgrade: true
- name: fig
brew: true
scope: optional
- name: file
apt: true
scope: minimal
- name: findutils
brew: true
scope: minimal
- name: font-fira-code
brewcask: true
scope: minimal
- name: font-fira-code-nerd-font
brewcask: true
scope: minimal
- name: fzf
apt: true
brew: true
scope: minimal
allow_upgrade: true
- name: gh
apt: true
brew: true
keyring_file: githubcli-archive-keyring.gpg
keyring_url: https://cli.github.com/packages/githubcli-archive-keyring.gpg
source_list_file: github-cli.list
source_list_line: "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main"
scope: minimal
allow_upgrade: true
- name: git
brew: true
scope: minimal
allow_upgrade: true
- name: git-lfs
apt: true
brew: true
scope: minimal
repository_script: https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh
source_list_file: github_git-lfs.list
allow_upgrade: true
- name: git-sizer
apt: true
brew: true
scope: minimal
- name: git-workspace
brew: true
scope: optional
- name: google-cloud-cli
apt: true
keyring_file: cloud.google.gpg
keyring_url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
source_list_file: google-cloud-sdk.list
source_list_line: "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main"
scope: optional
- name: google-perftools
apt: true
scope: full
- name: gnupg
brew: true
scope: minimal
- name: go
brew: true
script: true
script_cmd: install-go
current_version: "$(go version | awk '{print $3}')"
latest_version: "$(curl -s 'https://go.dev/VERSION?m=text' | head -n 1)"
scope: minimal
allow_upgrade: true
- name: go-age
script: true
script_cmd: go install filippo.io/age/cmd/...@latest
script_prereqs: "source ${HOME}/.config/shrc/00-dotfiles-export"
check_prereqs: "command -v go &> /dev/null"
check_installed: command -v age &>/dev/null
current_version: "age --version | cut -d' ' -f2"
latest_version: $(curl -s https://api.github.com/repos/FiloSottile/age/releases/latest | grep tag_name | cut -d '"' -f4)
scope: minimal
- name: go-sops
script: true
script_cmd: go install go.mozilla.org/sops/v3/cmd/sops@latest
script_prereqs: "source ${HOME}/.config/shrc/00-dotfiles-export"
check_prereqs: "command -v go &> /dev/null"
check_installed: command -v sops &>/dev/null
current_version: "sops --version | awk '{print $NF}'"
latest_version: $(curl -s https://api.github.com/repos/mozilla/sops/releases/latest | grep 'tag_name' | cut -d'"' -f4)
scope: optional
- name: go-task
brew: true
script: true
script_cmd: install-go-task
check_installed: command -v task &>/dev/null
current_version: $(task --version | awk '{print $3}')
latest_version: $(curl -s https://api.github.com/repos/go-task/task/releases/latest | grep 'tag_name' | cut -d'"' -f4)
scope: minimal
allow_upgrade: true
- name: gpa
apt: true
scope: gui
- name: gpg-suite
brewcask: true
scope: optional
- name: helm
apt: true
brew: true
keyring_file: helm.gpg
keyring_url: https://baltocdn.com/helm/signing.asc
source_list_file: helm-stable-debian.list
source_list_line: "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main"
scope: optional
- name: hyfi
pipx: true
scope: optional
allow_upgrade: true
- name: inxi
apt: true
brew: true
scope: system
- name: jq
apt: true
brew: true
scope: minimal
- name: linux-generic-hwe-18.04
apt: true
- name: linux-generic-hwe-20.04
apt: true
- name: locales
apt: true
scope: minimal
- name: locales-all
apt: true
scope: minimal
- name: lsb-release
apt: true
scope: minimal
- name: microk8s
brew: true
snap: true
post_install: id -nG "${USER}" | grep -qw microk8s || sudo usermod -a -G microk8s "${USER}"
scope: optional
- name: mypy
pipx: true
check_installed: command -v dmypy &>/dev/null
scope: optional
- name: neofetch
apt: true
brew: true
scope: system
- name: ngrok
apt: true
gpg_key_file: ngrok.asc
gpg_key_url: https://ngrok-agent.s3.amazonaws.com/ngrok.asc
source_list_file: ngrok.list
source_list_line: "deb https://ngrok-agent.s3.amazonaws.com buster main"
scope: optional
- name: node
brew: true
scope: minimal
- name: nox
pipx: true
pipx_extra: nox-poetry
scope: optional
- name: nvidia-container-toolkit
apt: true
keyring_file: nvidia-container-toolkit-keyring.gpg
keyring_url: https://nvidia.github.io/libnvidia-container/gpgkey
source_list_file: nvidia-container-toolkit.list
# ISSUE: use ubuntu18.04 in the .list files for all later Ubuntu versions.
# ref: https://github.com/NVIDIA/nvidia-container-toolkit/issues/94
source_list_line: "deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/$(. /etc/os-release;echo $ID'18.04/$(ARCH)') /"
scope: system
- name: nvm
script: true
script_cmd: "curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash"
check_installed: "[[ -f ${HOME}/.nvm/nvm.sh ]]"
scope: minimal
- name: openai
pipx: true
scope: optional
- name: openssh-server
apt: true
scope: full
- name: pass
apt: true
brew: true
scope: system
- name: passage
script: true
script_cmd: install-passage
scope: minimal
- name: pinentry-curses
apt: true
scope: gui
- name: pinentry-mac
brew: true
scope: gui
- name: pip
pip: true
scope: optional
allow_upgrade: true
- name: pipx
brew: true
pip: true
scope: optional
allow_upgrade: true
- name: poetry
brew: false
script: false
pipx: true
script_cmd: curl -sSL https://install.python-poetry.org | python3 -
scope: optional
- name: poethepoet
pipx: true
check_installed: command -v poe &>/dev/null
completion_file: ${HOME}/.oh-my-zsh/completions/_poe
completion_cmd: poe _zsh_completion
scope: optional
allow_upgrade: false
- name: pre-commit
brew: false
pipx: true
scope: optional
allow_upgrade: false
- name: procps
apt: true
scope: minimal
- name: python3-dev
apt: true
scope: full
- name: python3-pip
apt: true
scope: full
- name: python3-setuptools
apt: true
scope: full
- name: python3-testresources
apt: true
scope: full
- name: python3-venv
apt: true
scope: full
- name: python-semantic-release
pipx: true
check_installed: command -v semantic-release &>/dev/null
scope: optional
- name: rbenv
script: true
script_cmd: "curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash"
check_installed: "command -v rbenv &> /dev/null"
scope: optional
- name: restic
brew: true
scope: optional
- name: rust
script: true
script_cmd: "curl https://sh.rustup.rs -sSf | sh -s -- -y --profile=minimal"
check_installed: "command -v rustup &> /dev/null"
scope: full
- name: sdkman
script: true
script_cmd: "curl -s 'https://get.sdkman.io' | bash"
check_prereqs: "command -v unzip &> /dev/null"
check_installed: "[[ -f ${HOME}/.sdkman/bin/sdkman-init.sh ]]"
scope: full
- name: seahorse
apt: true
scope: gui
- name: serviceman
script: true
script_cmd: webi serviceman
check_prereqs: "command -v webi &> /dev/null"
scope: optional
- name: setuptools
pip: true
scope: optional
allow_upgrade: true
- name: snapd
apt: true
scope: full
- name: sops
brew: true
scope: minimal
- name: sourcery
pipx: true
scope: optional
- name: sourcegraph
script: true
script_cmd: curl -L https://sourcegraph.com/.api/src-cli/src_linux_amd64 -o ${HOME}/.local/bin/src && chmod +x ${HOME}/.local/bin/src
check_installed: command -v src &>/dev/null
scope: optional
- name: sourcegraph/src-cli/src-cli
brew: true
check_installed: command -v src &>/dev/null
scope: optional
- name: stow
apt: true
brew: true
scope: optional
- name: tree
apt: true
brew: true
scope: minimal
- name: tmux
apt: true
brew: true
scope: minimal
allow_upgrade: true
- name: tzdata
apt: true
scope: minimal
- name: unzip
apt: true
brew: true
scope: minimal
- name: uv
script: true
script_cmd: "curl -LsSf https://astral.sh/uv/install.sh | sh"
check_installed: "command -v uv &> /dev/null"
current_version: "uv --version | cut -d' ' -f2"
latest_version: $(curl -s https://api.github.com/repos/astral-sh/uv/releases/latest | grep 'tag_name' | cut -d'"' -f4)
scope: optional
allow_upgrade: true
- name: vim
apt: true
scope: minimal
- name: wakatime
pipx: true
scope: optional
- name: webi
script: true
script_cmd: curl https://webi.sh/webi | sh
cmd_name: webi
scope: gui
- name: wheel
pip: true
scpoe: optional
- name: wslu
apt: true
- name: xclip
apt: true
scope: gui
- name: yq
brew: true
script: true
script_cmd: install-yq
scope: minimal
- name: zip
apt: true
scope: minimal
- name: zsh
apt: true
brew: true
scope: minimal