Qu'est-ce que yq ?
yq est un processeur en ligne de commande léger et portable pour les données structurées — fichiers YAML, JSON, XML, CSV, TOML et properties — écrit en Go par Mike Farah. Il utilise une syntaxe façon jq, donc tout ce que vous connaissez de jq se transfère directement : interrogez, transformez, fusionnez et modifiez des fichiers en place, dans vos scripts et vos pipelines, avec un unique binaire sans dépendances.
yq en python présent dans certaines archives ; ce paquet le remplace proprement, et ni python ni jq ne sont requis.
apt upgrade vous garde toujours à la dernière version.
⚡ Fonctionnalités clés de yq
🔄 Six formats
YAML, JSON, XML, CSV/TSV, TOML et properties — lisez un format, produisez-en un autre : yq -o=json '.' config.yaml convertit en une seule étape.
🧠 Syntaxe façon jq
Chemins, pipes, fonctions et opérateurs familiers. Si vous savez écrire un filtre jq, vous savez déjà utiliser yq sur du YAML.
✏️ Édition en place
yq -i '.spec.replicas = 3' deploy.yaml — des modifications scriptées des manifestes Kubernetes, des configs CI et des fichiers Compose, commentaires préservés.
📦 Zéro dépendance
Un unique binaire Go statique. Pas de runtime, pas de bibliothèques, pas de python — idéal pour les conteneurs minimaux et les runners CI.
🔀 Fusion & ancres
Fusionne en profondeur plusieurs fichiers, résout les ancres et alias YAML, gère les flux multi-documents — les cas YAML difficiles traités correctement.
📖 Page man incluse
Ce paquet fournit la page man complète avec le binaire — man yq fonctionne hors ligne, conformément aux conventions Debian.
🏆 Pourquoi l'installer avec apt ?
- Pensé pour les flottes : épinglez un seul dépôt dans vos images de base et chaque serveur, conteneur et runner CI obtient le même yq à jour
- Pas de curl-vers-bin : un dépôt signé GPG au lieu de télécharger des binaires à la main dans
/usr/local/bin - Le bon yq : garantit la sémantique mikefarah/yq v4 partout — pas de surprises avec le wrapper python sur certaines machines
- Mises à jour automatiques : les nouvelles versions upstream arrivent avec votre
apt upgradehabituel - Multi-arch : amd64, arm64, armhf, ppc64el, s390x et riscv64
📦 Installation depuis deb.griffo.io
Étape 1 : Ajouter le dépôt
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🆓 Il existe un miroir gratuit pour toujours. deb-free.griffo.io distribue des paquets gratuitement pour toujours — sans compte, sans abonnement, au plus 2 mois derrière l'upstream, correctifs de sécurité immédiats. Il contient aujourd'hui cliamp, Ghostty, lazydocker, Oh My Posh et Zed ; yq n'en fait pas partie, le dépôt ci-dessus reste donc le seul moyen de l'installer — demandez-le et il pourra y être ajouté.
Étape 2 : Installer yq
sudo apt install -y yqapt install -y yq🚀 Premier lancement
yq '.services | keys' docker-compose.yml # query
yq -i '.image.tag = "1.2.3"' values.yaml # edit in place
yq -o=json '.' config.yaml # YAML -> JSON📦 Dépôt de construction de paquets
Les paquets Debian sont automatiquement construits et maintenus dans ce dépôt GitHub :
- 📂 yq-debian - Builds des dernières versions
🔗 Paquets associés
Également disponible depuis deb.griffo.io :
- k9s - TUI Kubernetes — se marie avec yq pour manipuler les manifestes
- lazydocker - TUI Docker pour les fichiers Compose que vous venez de modifier
- just - Un lanceur de commandes pour encapsuler vos one-liners yq
💝 Soutenez ce projet
Si ce dépôt vous fait gagner du temps et des efforts, pensez à le soutenir !