Что такое yq?
yq — это лёгкий портативный консольный процессор структурированных данных — YAML, JSON, XML, CSV, TOML и properties-файлов, — написанный на Go Майком Фарой. Он использует синтаксис в стиле jq, поэтому всё, что вы знаете из jq, переносится напрямую: запрашивайте, преобразуйте, объединяйте и редактируйте файлы на месте, в скриптах и пайплайнах, с одним бинарным файлом без зависимостей.
yq, встречающаяся в некоторых архивах; этот пакет чисто её замещает, и ни python, ни jq не требуются.
apt upgrade всегда держит вас на последней версии.
⚡ Ключевые возможности yq
🔄 Шесть форматов
YAML, JSON, XML, CSV/TSV, TOML и properties — читайте один, выводите другой: yq -o=json '.' config.yaml преобразует за один шаг.
🧠 Синтаксис в стиле jq
Знакомые пути, пайпы, функции и операторы. Если вы умеете писать фильтр jq, вы уже умеете использовать yq для YAML.
✏️ Редактирование на месте
yq -i '.spec.replicas = 3' deploy.yaml — скриптовые правки манифестов Kubernetes, конфигураций CI и файлов Compose с сохранением комментариев.
📦 Ноль зависимостей
Один статический бинарный файл на Go. Ни рантайма, ни библиотек, ни python — идеально для минимальных контейнеров и CI-раннеров.
🔀 Слияние и якоря
Глубокое слияние нескольких файлов, разрешение якорей и алиасов YAML, обработка многодокументных потоков — сложные случаи YAML сделаны правильно.
📖 Man-страница в комплекте
Этот пакет поставляет полную man-страницу вместе с бинарным файлом — man yq работает офлайн, в соответствии с конвенциями Debian.
🏆 Зачем устанавливать через apt?
- Удобно для парка машин: закрепите один репозиторий в базовых образах — и каждый сервер, контейнер и CI-раннер получит один и тот же актуальный yq
- Без curl-to-bin: репозиторий с GPG-подписью вместо ручной загрузки бинарных файлов в
/usr/local/bin - Правильный yq: гарантирует семантику mikefarah/yq v4 повсюду — никаких сюрпризов от python-обёртки на отдельных машинах
- Автоматические обновления: новые релизы upstream приходят с обычным
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 месяцев позади upstream, исправления безопасности сразу. Сейчас там cliamp, Ghostty, lazydocker, Oh My Posh и Zed; yq среди них нет, поэтому репозиторий выше — единственный способ установить его сегодня; попросите, и его можно добавить.
Шаг 2: Установить yq
sudo apt install -y yqapt install -y yq🚀 Первый запуск
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📦 Репозиторий сборки пакетов
Пакеты Debian собираются и поддерживаются автоматически в этом репозитории GitHub:
- 📂 yq-debian - сборки последних релизов
🔗 Связанные пакеты
Также доступны из deb.griffo.io:
- k9s - TUI для Kubernetes — в паре с yq для работы с манифестами
- lazydocker - TUI для Docker — для только что отредактированных файлов Compose
- just - командный раннер, оборачивающий ваши однострочники yq
💝 Поддержите этот проект
Если этот репозиторий экономит ваше время и усилия, пожалуйста, поддержите его!