Сколько раз у вас возникала проблема с установкой незнакомой программы? Вы начинаете с поиска в стандартных репозиториях, затем пробуете сторонние. Если ничего не находится — проверяете Glathub и Snap Store. Молчат и они? Тогда, махнув рукой, ищете проект на GitHub, вручную скачиваете архив... Неужели нет других вариантов? На самом деле есть — и сейчас я покажу, как сделать всё намного проще.
Ручной поиск, скачивание и установка — давно головная боль не только для продвинутых пользователей, но и для новичков. Инструментов хватает, но один из них особенно выделяется — Universal Binary Installer (UBI). Сейчас расскажу, что это за штука, какие задачи решает и как ей пользоваться.
Что такое UBI?
Если коротко: UBI — это небольшая программа на Rust, которая позволяет устанавливать бинарные файлы прямо с GitHub и GitLab. Большинство разработчиков выкладывают не просто исходники, а уже готовые исполняемые файлы. UBI полностью автоматизирует рутинные шаги и позволяет получать самые свежие версии программ буквально парой команд.
Как устроены релизы на GitHub?
Для каждого проекта на GitHub есть специальная страница релизов — именно там собираются готовые сборки (например, tar-архивы), которые можно скачать и сразу запустить. В качестве примера: у репозитория lazydocker вы найдёте массу версий этого софта под разные платформы.
В названиях файлов обычно указано всё, что нужно: версия, платформа и прочее. Например:
lazydocker_0.24.2_Linux_x86_64.tar.gz
GitHub не диктует форматы — у каждого автора свои правила. Но чаще всего в имени есть название проекта, номер версии, платформа, иногда и тип libc (например, glibc или musl).
Libc — это стандартная библиотека C. В мире Linux это набор файлов, вроде libc.so.6, без которых многие приложения просто не запустятся.
Чем полезен UBI?
Разово скачать и установить программу — несложно, но если следить за обновлениями или пробовать новые проекты часто, процесс превращается в рутину: зайти на страницу, скачать архив, распаковать, скопировать бинарник, выдать права, сменить владельца... Да, можно написать Bash-скрипт, но возни всё равно много, особенно ради пары утилит.
UBI решает эту задачу в один мах: устанавливать пакеты с GitHub или GitLab становится почти так же просто, как из менеджера пакетов системы. Открывается доступ даже к самым редким или свежим проектам. Теперь вы не ограничены только официальными хранилищами вашей ОС; новые интересные программы с крупнейших open-source площадок всегда под рукой.
3 крутые Linux-программы на выходные (5—7 декабря)
Хотите удалённо следить за ресурсами устройства без заморочек с SSH? Первая программа справится с этим на ура.
Как UBI выбирает нужный архив
В каждом релизе на GitHub обычно лежит пачка файлов для разных систем, платформ и даже просто сопутствующих материалов. Задача UBI — сам найти и выбрать тот архив, что подходит именно вам.
Для этого программа отсекает неподходящие архивы по расширению и платформе.
В идеале после фильтрации остаётся только один вариант — если их больше, можно явно указать нужный через флаг --matching.
Далее UBI смотрит внутрь архива и определяет, какой именно файл является исполнимым — обычно это файл с названием проекта, но внутри может лежать несколько бинарников.
В общем, всё работает просто: UBI сам выбирает нужный архив и выуживает из него нужный бинарный файл.
Как установить UBI
Поставить UBI совсем не сложно, хотя некоторые до сих пор ругаются на "curl-башинг". Я доработал скрипт так, чтобы директория для бинарников (BIN_DIR) автоматически попала в ваш PATH. Бинарные файлы будут храниться там, но путь легко поменять через --in при установке новых программ. Для удобства советую завести alias.
Всегда проверяйте содержимое скриптов, скачиваемых через curl! Не ленитесь читать установщик UBI перед запуском.
Если PATH обновился в настройках, перезапустите оболочку: source ~/.bashrc для Bash или source ~/.zshrc для Zsh.
Как пользоваться UBI
Чтобы поставить софт прямиком из репозитория на GitHub, нужно только знать имя владельца аккаунта и название самого репозитория. Например:
Здесь "houseabsolute" — автор, а "ubi" — название репозитория.
Например, чтобы поставить сам UBI через UBI, просто выполните команду:
В конфиге своей оболочки я советую сделать alias или функцию — это заметно ускоряет установку и обновление.
Команда "install" может быть уже занята — тогда назовите свою функцию, например, "add".
Как справляться с неочевидными случаями
Бывает (и довольно часто!), что автоматическое определение архива не удаётся — названия файлов у разработчиков бывают какие угодно. Как быть?
Например, если в релизе есть архивы с разными дополнительными пометками ("foo" и "bar"):
С помощью флага --matching можно без лишних вопросов выбрать нужный вариант:
А можно воспользоваться регулярным выражением для поиска:
Флаг --matching применяется после стандартного фильтра, а --matching-regex — до.
Хотите поставить конкретную версию? Просто укажите нужный тег:
На скриншоте видно, как искать нужные теги определённых версий.
Не нашли ожидаемый бинарник внутри архива? Тогда используйте флаг --exe, чтобы явно задать имя нужного файла:
Хотите установить программу в определённую директорию? Применяйте --in:
7 недооценённых Linux-приложений, без которых я теперь не могу
Семь бесплатных программ, за которые я бы с радостью заплатил.
UBI — простая, но невероятно полезная утилита, закрывающая огромную дыру в мире Linux: теперь свежие отдельные пакеты становятся доступны каждому в пару кликов. Никаких лишних зависимостей, сборок или головоломных скриптов. Разработчик выкладывает релиз — вы сразу же получаете к нему доступ.
Сам я часто использую Distrobox, чтобы запускать особо экзотичные программы. Но с UBI и стандартными репозиториями теперь найти эксклюзивное приложение — задача почти невыполнимая.
Благодаря этому open-source-приложению я почти забыл о команде git
Лучшее TUI-приложение, с которым я работал — и смотрится оно действительно круто.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru