March 29, 2025

ikayaniaamirshahzad@gmail.com

Git as a binary distribution system: dotbins for portable developer tools



I'm sharing a different approach to managing developer tools across systems:

Problem: Every OS has different packages and versions. Moving between systems means constant tool reinstallation.

Solution: dotbins – Download binaries once, version control them, clone anywhere

The workflow: 1. Define your tools in a YAML file 2. Run dotbins sync to download binaries for all platforms 3. Store everything in a Git repo (with optional LFS) 4. Clone that repo on any new system

Create a ~/.dotbins.yaml file with contents:

“`yaml platforms: linux: – amd64 – arm64 macos: – arm64

tools: # Standard tools bat: sharkdp/bat fzf: junegunn/fzf

# With shell integration bat: repo: sharkdp/bat shell_code: | alias cat="bat –plain –paging=never" alias less="bat –paging=always"

ripgrep: repo: BurntSushi/ripgrep binary_name: rg “`

After running dotbins sync, you'll have binaries for all platforms/architectures in your ~/.dotbins directory.

“`bash

On your main machine

cd ~/.dotbins git init && git lfs install # LFS recommended for binaries git lfs track "/bin/" git add . && git commit -m "Initial commit" git push to your repo

On any new system

git clone https://github.com/username/.dotbins ~/.dotbins source ~/.dotbins/shell/bash.sh # Or zsh/fish/etc. “`

This approach has been a game-changer for me. I clone my dotfiles repo and my .dotbins repo, and I'm instantly productive on any system.

Has anyone else tried this Git-based approach to tool distribution?

submitted by /u/basnijholt
[comments]



Source link

Leave a Comment