yq とは
yq は Mike Farah が Go で書いた軽量で可搬な、構造化データのためのコマンドラインプロセッサです(YAML、JSON、XML、CSV、TOML、properties に対応)。jq に似た構文なので、jq の知識がそのまま活きます。依存のないバイナリ 1 つで、スクリプトでもパイプラインでも、問い合わせ、変換、マージ、その場での編集ができます。
yq ではありません。このパッケージはそれをきれいに置き換え、python も jq も不要です。
apt upgrade を実行するだけで、常に最新版を使い続けられます。
⚡ yq の主な機能
🔄 6 つのフォーマット
YAML、JSON、XML、CSV/TSV、TOML、properties。片方を読んでもう片方を出せます。yq -o=json '.' config.yaml で一発変換。
🧠 jq に似た構文
見慣れたパス、パイプ、関数、演算子。jq のフィルタが書けるなら、YAML に対する yq はもう使えます。
✏️ その場で編集
yq -i '.spec.replicas = 3' deploy.yaml。Kubernetes マニフェスト、CI 設定、Compose ファイルをコメントを保ったままスクリプトで書き換えられます。
📦 依存関係ゼロ
静的リンクされた Go の単一バイナリ。ランタイムもライブラリも python も不要で、最小構成のコンテナや CI ランナーに向いています。
🔀 マージとアンカー
複数ファイルの深いマージ、YAML のアンカーとエイリアスの解決、複数ドキュメントのストリーム処理。YAML の難しいところを正しく扱います。
📖 man ページを同梱
このパッケージはバイナリと一緒に完全な man ページを入れます。Debian の慣習どおり、man yq がオフラインでも使えます。
🏆 apt で入れるべき理由
- 台数が増えても楽: ベースイメージでリポジトリを固定しておけば、サーバーもコンテナも CI ランナーも同じ最新の yq になります
- curl して bin に置かない: バイナリを手で
/usr/local/binに落とす代わりに、GPG 署名付きリポジトリを使います - 正しい yq: どこでも mikefarah/yq v4 の挙動を保証します。マシンによって python 版のラッパーが出てくる、といった驚きがありません
- 自動更新: 上流の新しいリリースが、いつもの
apt upgradeで届きます - マルチアーキテクチャ: amd64、arm64、armhf、ppc64el、s390x、riscv64
📦 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 です。yq は含まれていないため、今日入手する方法は上のリポジトリだけですが、ご要望があれば追加できます。
ステップ 2: yq をインストールする
sudo apt install -y yqapt install -y yq🚀 最初の起動
yq '.services | keys' docker-compose.yml # クエリ
yq -i '.image.tag = "1.2.3"' values.yaml # その場で書き換え
yq -o=json '.' config.yaml # YAML -> JSON📦 パッケージのビルドリポジトリ
Debian パッケージは、この GitHub リポジトリで自動的にビルド・管理されています:
- 📂 yq-debian - 最新リリースのビルド
🔗 関連パッケージ
deb.griffo.io では、こちらも配布しています:
- k9s - Kubernetes の TUI。マニフェスト編集は yq と組み合わせて
- lazydocker - いま編集した Compose ファイルのための Docker TUI
- just - yq のワンライナーを包んでおけるコマンドランナー