Найти в Дзене
Герман Геншин

Вам надоело вручную качать файлы с GitHub? Вот способ, который навсегда поменяет ваш подход!

Сколько раз у вас возникала проблема с установкой незнакомой программы? Вы начинаете с поиска в стандартных репозиториях, затем пробуете сторонние. Если ничего не находится — проверяете Glathub и Snap Store. Молчат и они? Тогда, махнув рукой, ищете проект на GitHub, вручную скачиваете архив... Неужели нет других вариантов? На самом деле есть — и сейчас я покажу, как сделать всё намного проще. Ручной поиск, скачивание и установка — давно головная боль не только для продвинутых пользователей, но и для новичков. Инструментов хватает, но один из них особенно выделяется — Universal Binary Installer (UBI). Сейчас расскажу, что это за штука, какие задачи решает и как ей пользоваться. Что такое UBI? Если коротко: UBI — это небольшая программа на Rust, которая позволяет устанавливать бинарные файлы прямо с GitHub и GitLab. Большинство разработчиков выкладывают не просто исходники, а уже готовые исполняемые файлы. UBI полностью автоматизирует рутинные шаги и позволяет получать самые свежие вер
Оглавление

Сколько раз у вас возникала проблема с установкой незнакомой программы? Вы начинаете с поиска в стандартных репозиториях, затем пробуете сторонние. Если ничего не находится — проверяете Glathub и Snap Store. Молчат и они? Тогда, махнув рукой, ищете проект на GitHub, вручную скачиваете архив... Неужели нет других вариантов? На самом деле есть — и сейчас я покажу, как сделать всё намного проще.

Ручной поиск, скачивание и установка — давно головная боль не только для продвинутых пользователей, но и для новичков. Инструментов хватает, но один из них особенно выделяется — Universal Binary Installer (UBI). Сейчас расскажу, что это за штука, какие задачи решает и как ей пользоваться.

Что такое UBI?

Если коротко: UBI — это небольшая программа на Rust, которая позволяет устанавливать бинарные файлы прямо с GitHub и GitLab. Большинство разработчиков выкладывают не просто исходники, а уже готовые исполняемые файлы. UBI полностью автоматизирует рутинные шаги и позволяет получать самые свежие версии программ буквально парой команд.

Как устроены релизы на GitHub?

Для каждого проекта на GitHub есть специальная страница релизов — именно там собираются готовые сборки (например, tar-архивы), которые можно скачать и сразу запустить. В качестве примера: у репозитория lazydocker вы найдёте массу версий этого софта под разные платформы.

-2

В названиях файлов обычно указано всё, что нужно: версия, платформа и прочее. Например:

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

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 — до.

Хотите поставить конкретную версию? Просто укажите нужный тег:

-4

На скриншоте видно, как искать нужные теги определённых версий.

Не нашли ожидаемый бинарник внутри архива? Тогда используйте флаг --exe, чтобы явно задать имя нужного файла:

Хотите установить программу в определённую директорию? Применяйте --in:

-5

7 недооценённых Linux-приложений, без которых я теперь не могу

Семь бесплатных программ, за которые я бы с радостью заплатил.

UBI — простая, но невероятно полезная утилита, закрывающая огромную дыру в мире Linux: теперь свежие отдельные пакеты становятся доступны каждому в пару кликов. Никаких лишних зависимостей, сборок или головоломных скриптов. Разработчик выкладывает релиз — вы сразу же получаете к нему доступ.

Сам я часто использую Distrobox, чтобы запускать особо экзотичные программы. Но с UBI и стандартными репозиториями теперь найти эксклюзивное приложение — задача почти невыполнимая.

-6

Благодаря этому open-source-приложению я почти забыл о команде git

Лучшее TUI-приложение, с которым я работал — и смотрится оно действительно круто.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в: