Что такое just?
just — это удобный исполнитель команд, написанный на Rust Кейси Родармором. Он сохраняет и запускает специфичные для проекта команды, называемые рецептами, которые хранятся в файле с именем justfile с синтаксисом, вдохновлённым make. В отличие от make, just не является системой сборки: рецепты — это просто команды для выполнения, поэтому здесь нет фиктивных целей (phony) и зависимости от времени изменения файлов. Набрав более 25 тысяч звёзд на GitHub, он стал предпочтительным инструментом запуска задач для современных проектов.
.PHONY повсюду? Надоели ошибки табуляции против пробелов и неявные правила сборки, которые срабатывают, когда вы меньше всего этого ожидаете? just сохраняет привычное ощущение рецептов Makefile, но избавляется от груза системы сборки — каждый рецепт это просто команда.
⚡ Ключевые возможности just
📝 Синтаксис в стиле make
Пишите рецепты в знакомом, читаемом justfile. Если вы знаете Makefile, вы уже знаете большую часть just — без причуд.
🧩 Параметры рецептов
Рецепты принимают аргументы и имеют значения по умолчанию, поэтому один рецепт может адаптироваться ко многим вызовам без дополнительных скриптов.
🐚 Любая оболочка или язык
Пишите рецепты на sh, bash, Python, Node или чём-либо ещё с помощью строки shebang. 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 updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 Есть вечно бесплатное зеркало. deb-free.griffo.io раздаёт пакеты бесплатно навсегда — без аккаунта, без подписки, не более 2 месяцев позади upstream, исправления безопасности сразу. Сейчас там cliamp, Ghostty, lazydocker, Oh My Posh и Zed; just среди них нет, поэтому репозиторий выше — единственный способ установить его сегодня; попросите, и его можно добавить.
🧩 О варианте extrepo. extrepo — штатный инструмент Debian для внешних репозиториев: он создаёт файл sources и устанавливает ключ подписи, предварительно сверив его с подписанными метаданными. Этот репозиторий зарегистрирован в нём как griffo, а бесплатное навсегда зеркало — как griffo-free, поэтому в Debian (bookworm, trixie, forky и sid) команды выше и есть вся настройка.
extrepo настраивает только файл sources и ключ — учётные данные подписки по-прежнему прописываются в /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu не поддерживается, так как extrepo публикует метаданные только для выпусков Debian: там используйте команды с sudo или от root.
Шаг 2: Установить just
# Install latest just
sudo apt install just
# Проверить установку
just --version# Install latest 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🎯 Примеры базового использования
Запуск рецептов:
# Run the first recipe in the justfile (the default)
just
# Run a specific recipe
just test
# Pass an argument to a recipe
just hello Dario
# List every recipe with its documentation
just --listРабота с justfile:
# Show the resolved value of a variable
just --evaluate
# Print a recipe without running it
just --show build
# Use a justfile in another directory
just --justfile ~/project/justfile --working-directory ~/project build
# Choose a recipe interactively (needs a chooser like fzf)
just --chooseАвтодополнение оболочки:
# Completions for bash, fish and zsh are installed with the package.
# Generate them manually for any shell if you need to:
just --completions bash
just --completions zsh
just --completions fish🚀 Почему стоит выбрать deb.griffo.io?
- Официальный Debian: Доступен, но часто устаревшие версии
- Cargo Install: Требует цепочки инструментов Rust и компиляции
- Скрипт установки: Ручные обновления без управления пакетами
- deb.griffo.io: Последняя версия с автоматическими обновлениями
- ✅ Последние возможности: Получайте новейшие атрибуты и функции рецептов
- ✅ Без компиляции Rust: Готовые бинарные файлы, цепочка инструментов не нужна
- ✅ Автоматические обновления: Пакеты обновляются в течение нескольких часов после выхода апстрима
- ✅ Полный пакет: Включает автодополнение оболочки и man-страницу
- ✅ Мульти-дистрибутив: Работает на Bookworm, Trixie и Sid
- ✅ Простое обслуживание: Стандартные команды apt для обновлений
📦 Репозиторий сборки пакетов
Пакеты Debian собираются и поддерживаются автоматически в этом репозитории GitHub:
- 🤖 just-debian — сборки последних релизов
🔗 Связанные пакеты
Также доступны из deb.griffo.io:
- fzf Fuzzy Finder — обеспечивает работу
just --chooseдля интерактивного выбора рецептов - Jujutsu — современная, совместимая с Git система контроля версий
- Helix Editor — постмодернистский модальный редактор для редактирования ваших justfile