just とは
just は Casey Rodarmor が Rust で書いた手軽なコマンドランナーです。プロジェクト固有のコマンド、いわゆるレシピを justfile というファイルに保存して実行します。構文は make に着想を得ています。make と違って just はビルドシステムではありません。レシピは単に実行するコマンドなので、phony ターゲットもなければ、ファイルの更新時刻への依存もありません。GitHub スターは 2 万 5,000 を超え、現代的なプロジェクトの定番タスクランナーになりました。
.PHONY を書くのに疲れていませんか。タブとスペースのエラーや、思わぬところで発火する暗黙ルールにうんざりしていませんか。just は Makefile の馴染んだ書き心地を残したまま、ビルドシステムの荷物を降ろします。レシピは、ただのコマンドです。
⚡ just の主な機能
📝 Make ゆずりの構文
見慣れて読みやすい justfile にレシピを書きます。Makefile を知っているなら、just のほとんどはもう分かっています。あの癖を除いて。
🧩 レシピのパラメータ
レシピは引数と既定値を取れるので、余計なスクリプトなしに、ひとつのレシピが多くの呼び出し方に対応できます。
🐚 どんなシェル・言語でも
レシピは sh、bash、Python、Node など、シェバン行が書けるものなら何でも。just が選んだインタプリタで各レシピを実行します。
📋 一覧と発見
just --list を実行すれば、すべてのレシピと説明コメントが見られます。初めての人でも、そのプロジェクトのタスクをすぐ把握できます。
🔐 .env と変数
環境ファイルを読み込み、変数を定義してレシピに展開できます。設定をコマンドの外に、きれいに保てます。
🌍 クロスプラットフォーム
Linux でも macOS でも Windows でも同じように動く、静的リンクの単一バイナリ。ランタイムもインタプリタも、環境ごとの癖もありません。
🏆 生産性の面でのメリット
- 時間の節約: 長いコマンドを覚える代わりに
just <recipe>だけ - それ自体がドキュメント:
just --listがすべてのタスクと説明を表示します - ぶれない: チーム全員が同じコマンドを同じように実行できます
- ビルド特有の落とし穴なし: レシピはターゲットではなくコマンドなので、タイムスタンプ由来の不可解な挙動がありません
- 可搬性: ひとつの justfile が Linux、macOS、Windows で動きます
apt upgrade を実行するだけで、常に最新版を使い続けられます。
📦 deb.griffo.io からインストールする
ステップ 1: リポジトリを追加する
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 ずっと無料のミラーがあります。 deb-free.griffo.io は、アカウントもサブスクリプションもなしでパッケージをずっと無料で配布しています。上流より最大2か月遅れ、セキュリティ修正は即座に公開されます。現在収録しているのは cliamp、Ghostty、lazydocker、Oh My Posh と Zed です。just は含まれていないため、今日入手する方法は上のリポジトリだけですが、ご要望があれば追加できます。
ステップ 2: just をインストールする
# 最新の just をインストール
sudo apt install just
# インストールを確認
just --version# 最新の just をインストール
apt install just
# インストールを確認
just --versionステップ 3: 最初の justfile を作る
# プロジェクトに justfile を作る
cat > justfile <<'EOF'
# プロジェクトをビルド
build:
cargo build --release
# テストを実行
test:
cargo test
# 誰かに挨拶する
hello name='world':
echo "Hello, {{name}}!"
EOF
# 使えるレシピを一覧
just --list
# レシピを実行
just build
just hello just🎯 基本的な使い方
レシピを実行する:
# justfile の最初のレシピを実行(既定)
just
# 特定のレシピを実行
just test
# レシピに引数を渡す
just hello Dario
# すべてのレシピを説明付きで一覧
just --listjustfile を扱う:
# 変数の解決後の値を表示
just --evaluate
# レシピを実行せずに表示
just --show build
# 別のディレクトリにある justfile を使う
just --justfile ~/project/justfile --working-directory ~/project build
# レシピを対話的に選ぶ(fzf などの選択ツールが必要)
just --chooseシェル補完:
# bash・fish・zsh の補完はパッケージと一緒に入ります。
# 必要なら、どのシェル向けにも手動で生成できます:
just --completions bash
just --completions zsh
just --completions fish🚀 deb.griffo.io を選ぶ理由
- 公式 Ubuntu: 提供はあるが、古いバージョンであることが多い
- cargo install: Rust ツールチェインとコンパイルが必要
- インストールスクリプト: 更新は手動で、パッケージ管理もなし
- deb.griffo.io: 最新版を自動更新でお届け
- ✅ 最新の機能: 最新のレシピ属性と関数が手に入ります
- ✅ Rust のコンパイル不要: ビルド済みバイナリなので、ツールチェインは要りません
- ✅ 自動更新: 上流のリリースから数時間以内にパッケージを更新
- ✅ 全部入り: シェル補完と man ページを同梱
- ✅ マルチディストリビューション: Jammy と Noble で動作
- ✅ 手間のかからない運用: 更新は通常の apt コマンドだけ
📦 パッケージのビルドリポジトリ
Ubuntu パッケージは、この GitHub リポジトリで自動的にビルド・管理されています:
- 🤖 just-debian - 最新リリースのビルド
🔗 関連パッケージ
deb.griffo.io では、こちらも配布しています:
- fzf ファジーファインダー -
just --chooseの対話的なレシピ選択を支えます - Jujutsu - 現代的で Git 互換のバージョン管理システム
- Helix エディタ - justfile を編集するための、ポストモダンなモーダルエディタ