Как собрать рабочий софт на свежем дистрибутиве Linux в пару кликов с TuxMate

16 авг 2026

Репозиторий давно не обновлялся

Последнее обновление было 6 месяцев назад.

1,839
84
5
6 месяцев

Каждый раз, когда я ставлю свежий дистрибутив Linux или настраиваю рабочую станцию с нуля, начинается один и тот же рутинный квест. Сначала вспоминаешь точные названия пакетов в конкретном репозитории. В Arch это может быть одно имя, в Debian пакет разбит на две части с суффиксами -bin или -common, в Fedora называется иначе, а в AUR лежит третья сборка. В итоге первые два часа уходят на перебор apt search, pacman -Ss и поиск правильных Flatpak-идентификаторов.

В мире Windows для массовой установки софта годами использовали Ninite, где можно накликать нужные программы и скачать один готовый установщик. В Linux ситуация сложнее из-за зоопарка пакетных менеджеров. Проект TuxMate пытается решить эту задачу элегантно и без скрытой магии.

TuxMate

Что такое TuxMate

TuxMate — веб-генератор установочных команд и шелл-скриптов для различных дистрибутивов Linux, macOS и NixOS. Автор проекта поставил простую цель: дать разработчику каталог софта, где можно один раз выбрать привычные инструменты и сразу получить готовый, полностью прозрачный скрипт для своей системы.

Главное отличие TuxMate от сомнительных установщиков из сети заключается в архитектурном принципе. Сервис ничего не ставит в фоновом режиме сам по себе. Он работает исключительно как конфигуратор. Вы выбираете утилиты, смотрите на сгенерированный bash-скрипт прямо в браузере, проверяете флаги и только потом запускаете команды в своем терминале.

Реклама

Интерфейс TuxMate

Поддерживаемые экосистемы

Каталог проекта разбит на категории: разработка, системные утилиты, браузеры, медиа, безопасность и средства коммуникации. На момент подготовки обзора в базе доступно больше 180 приложений.

Генератор умеет мапить пакеты под следующие менеджеры:

  • Debian и Ubuntu (apt)
  • Arch Linux (pacman, с поддержкой AUR-хелперов yay и paru)
  • Fedora (dnf)
  • openSUSE (zypper)
  • NixOS (генерация готового фрагмента для configuration.nix)
  • Универсальные контейнеризированные форматы Flatpak и Snap
  • Homebrew (с разделением на CLI-формулы и GUI-каски)

Приоритет отдается нативным пакетам дистрибутива. Если программа отсутствует в официальных репозиториях конкретной ОС, генератор аккуратно подтягивает проверенный Flatpak, Snap или официальный скрипт установки от авторов утилиты.

Выбор дистрибутива и софта

Чем интересен проект внутри

С технической точки зрения TuxMate написан на свежем стеке: Next.js 16 (App Router), React 19 и TypeScript. Для стилизации используется Tailwind CSS 4, а плавные анимации каталога сделаны на связке Framer Motion и GSAP.

Вот несколько любопытных деталей реализации, на которые стоит обратить внимание при изучении исходников:

Продуманные шелл-скрипты

Когда вы скачиваете сгенерированный .sh файл, внутри оказывается не просто портянка из команд install. Скрипт содержит базовые проверки окружения:

  • Проверка наличия пакета в системе перед скачиванием, чтобы не гонять трафик вхолостую.
  • Механизм повторных попыток с экспоненциальной задержкой при сбоях сети.
  • Параллельная установка для Flatpak, что заметно экономит время на жирном софте вроде браузеров и IDE.
  • Цветное форматирование вывода в терминале с прогресс-баром и финальной сводкой.

Работа со спецификой дистрибутивов

Разработчики учли нюансы разных ОС. Если вы собираете скрипт под Arch, интерфейс предлагает переключатель между yay и paru, а рядом с неофициальными пакетами выводит явную плашку AUR.

Для NixOS сервис формирует валидный блок environment.systemPackages и автоматически проверяет наличие проприетарного ПО, добавляя в конфиг разрешение nixpkgs.config.allowUnfree = true, если вы выбрали Discord, VS Code или Spotify.

Просмотр скрипта

Интерфейс и работа офлайн

Веб-приложение работает как полноценный PWA с кеширующим сервис-воркером. Страница продолжит работать, даже если интернет на настраиваемой машине временно пропал.

Для любителей работать без мыши есть полноценная навигация клавиатурой: клавиши Vim (hjkl), стрелки, фокус на строку поиска по нажатию слэша / и быстрый сброс по Escape.

Как запустить локально или развернуть у себя

Если вам не хочется зависеть от внешнего хостинга или вы настраиваете закрытый контур, проект легко поднять в Docker.

Готовый контейнер можно забрать из GitHub Container Registry:

docker run -d -p 3000:3000 --name tuxmate ghcr.io/abusoww/tuxmate:latest

Если планируете добавить свои внутренние пакеты компании или кастомные репозитории, проект собирается стандартными средствами Node.js:

git clone https://github.com/abusoww/tuxmate.git
cd tuxmate
npm install
npm run dev

Вся база приложений лежит в каталоге src/lib/apps/ в виде обычных JSON-файлов, разбитых по категориям. Добавить новую утилиту с правильными именами пакетов для всех дистрибутивов не составляет труда.

Практическая польза и ограничения

TuxMate закрывает давнюю головную боль системных администраторов и разработчиков, которым часто приходится поднимать тестовые виртуальные машины или готовить ноутбуки для новых сотрудников.

Вместо ведения разрозненных текстовых заметок с командами apt install ... вы получаете наглядную витрину. Выбрали Docker, Git, Alacritty, Neovim, нужные браузеры, скопировали одну строчку и запустили.

Среди ограничений стоит учитывать:

  • База пакетов сейчас насчитывает около двух сотен приложений, узкоспециализированный софт придется ставить руками.
  • Имена пакетов в репозиториях со временем меняются, поэтому проверять сгенерированный код перед выполнением с правами sudo по-прежнему обязательно.

Стоит ли пробовать

TuxMate — добротный опенсорсный инструмент с открытым исходным кодом под лицензией GPL-3.0. Он берет на себя самую скучную часть настройки Linux-систем и экономит кучу времени при миграциях между дистрибутивами.

Попробовать веб-версию можно на официальном сайте проекта, а если не хватает нужного инструмента или вы нашли неточность в имени пакета для вашего дистрибутива, автор открыт к пулл-реквестам.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.