開発者間でツールのバージョンをそろえられる devbox 使い始めた

開発時に、go install とかで go で書かれたツールをちょいちょい入れてたんだけど、go 自体のバージョンを mise で上げたら再インストールする必要があってダルかった。

https://zenn.dev/shimarisu_121/articles/12cbe01ee9fbe8 を参考に、devbox というものを使うことにした。

これは nix ベースで開発ツールのバージョンを管理してくれるツールで、dbmateや 1password-cli などの開発に利用するツールのバージョンを固定してくれる。 lefthook 入れてねーとかそういうのをいちいち言わなくて良いし、開発者ごとに違うバージョンを使わなくて良いのが便利。

nix について知らなくても使えるというのも良い。 direnv と組み合わせると、プロジェクトのディレクトリにシェルで入ると自動的にツールのバージョンもそろえてくれるのが便利。

  "packages": [
    "github:tokuhirom/nur-packages#apprun-dedicated-provisioner",
  ],

こういう風に書くと、github プロジェクトに flake.nix が置いてあれば、それのインストールもシュッとやってくれるんで、みんなで使いたい開発ツールを配布するのにも便利。 最高じゃんね。

使えるバージョンタグとかは https://www.nixhub.io/packages/git-cliff 見に行くとある。わりと結構だいたいある。


インストールしたいツールの flake.nix はこういう感じで書けば良くて。github releases に置いておいたバイナリをシュッとダウンロードする設定は claude に頼めば書いてくれた。nix に詳しくなかったとしても、ハッシュ値の更新が必要なことだけ理解しておけば AI 任せで設置可能。 https://github.com/tokuhirom/apprun-dedicated-provisioner/blob/main/flake.nix


とおもったんだけど、変更タイミングが tagpr と相性悪かったんで、あきらめて https://github.com/tokuhirom/nur-packages/ みたいにレポジトリわけた。 goreleaser で該当レポジトリを更新するようにした。 https://github.com/tokuhirom/apprun-dedicated-provisioner/blob/main/.goreleaser.yaml#L82

Published: 2026-01-26(Mon) 10:58