Top.Mail.Ru
Загрузка

Topgrade — обновление системы в один клик

Инструмент командной строки Topgrade поможет содержать установленные в системе приложения в актуальном состоянии всего лишь одной командой.

В современном Linux дистрибутиве в качестве источника приложений, помимо родного репозитория, используются и другие системы управления пакетами. Наиболее распространены в Linux среде пакеты Flatpak, AppImages и snap. Кроме них в файловой системе среднестатистического пользователя можно найти приложения, установленные посредством PIP (система управления пакетами, написанными на Python), Cargo (система сборки и менеджер пакетов Rust), npm (менеджер пакетов, входящий в состав Node.js) или Homebrew (система управления пакетами в операционных системах Apple, macOS и Linux).

Время от времени, не зависимо от источника установки приложения, любое программное обеспечение требует обновления. Но, каждый из перечисленных выше источников приложений использует свою собственную команду для запуска процесса обновления. К сожалению, универсальной команды для поддержания разношёрстных приложений в актуальном состоянии не существует.

Выходом из этой ситуации может стать менеджер пакетов Topgrade, написанный пользователем Roey Darwish Dror. Несмотря на то, что недавно, после нескольких лет разработки, он прекратил работу над своей программой, другие независимые разработчики продолжили дальнейшее развитие инструмента под названием Topgrade-rs. Для простоты изложения в данной статье я буду называть «форк» сообщества просто Topgrade.

Один за всех

Topgrade, — кроссплатформенная утилита, написанная на языке программирования rust, запускает все используемые в системе пакетные менеджеры по очереди с помощью одной терминальной команды. При должной настройке Topgrade установит доступные обновления даже на удалённой машине. Стоит отметить, что утилита поддерживает не только нативный Linux, но и Windows Subsystem for Linux (WSL), Chocolatey и Scoop под Windows, а также FreeBSD и DragonFly BSD.

Кроме того, Topgrade может поддерживать в актуальном состоянии некоторые программы. В частности утилита может обновлять плагины консольного текстового редактора Vim, плагины терминального мультиплексора Tmux, который позволяет работать с несколькими сессиями в одном окне. Также Topgrade умеет работать с обновлением Pi-hole — сетевым блокировщиком рекламы, разработанным для работы на Raspberry Pi.

Установка Topgrade

Для работы Topgrade требуется версия Rust 1.6.5 или выше, которая уже включена во многие дистрибутивы. Версию rust можно узнать, набрав в консоли команду:

rustc --version

Если данная команда не обнаружит rustc в вашей системе, то необходимо установить пакет с помощью менеджера пакетов вашего дистрибутива, а затем снова проверить версию. Разработчики рекомендуют использовать rustup для загрузки и установки Rust. Просто запустите следующую команду в вашем терминале и следуйте инструкциям на экране.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Topgrade присутствует в пользовательском репозитории AUR для Arch Linux и его производных. Он доступен в репозиториях для NixOS и Void Linux, а также в macOS, где устанавливается через Homebrew или MacPorts, и на Windows машинах. На странице GitHub проекта доступны исходные коды и бинарные пакеты для архитектур x86_64, AArch64 и ARMv7, а также для Apple Darwin и Windows.

Для всех остальных дистрибутивов рекомендуется установка Topgrade с помощью менеджер пакетов Cargo. Но сначала необходимо установить саму утилиту Cargo и разрешить некоторые зависимости.

Установка Cargo и его зависимостей на Debian и его производных:

sudo apt install cargo pkg-config libssl-dev

Установка Cargo и его зависимостей на Fedora:

sudo dnf install cargo pkg-config openssl-devel

После успешной установки необходимо обновить Cargo, и только после этого установить Topgrade.

cargo install cargo-update
cargo install topgrade

Настройка и запуск Topgrade

Следующим шагом будет настройка Topgrade. Добавьте следующую строку в конце файла ~/.profile, чтобы оболочка знала, откуда запускать исполняемый файл:

export PATH=$PATH:$HOME/.cargo/bin

Конфигурационный файл Topgrade находится по пути: ~/.config/topgrade/topgrade.toml. Файл поддерживает как общие, так и специфические настройки для отдельных менеджеров пакетов. Здесь же можно указать имена хостов удалённых машин, которые вы хотите обновлять по SSH. Необходимым условием для этого является то, что Topgrade должен быть установлен и на удалённой системе тоже.

Теперь, сохранив все изменения в конфигурационном файле, можно запустить и сам инструмент, набрав в командной строке:

topgrade

Приложение выполнит по очереди команды обновления для всех обнаруженных в системе менеджерах пакетов, начиная с родного и далее по наличию в системе (Flatpak, Snap и другие).

Заключение

Topgrade предоставляет логику для обнаружения и поочередного выполнения всех существующих менеджеров пакетов. Topgrade не подойдёт для тех, кто привык держать под личным контролем всё, что происходит в его системе, а также для тех, кто привык устанавливать приложения исключительно с помощью пакетного менеджера дистрибутива.

Однако если у вас установлены пакеты Flatpak или snaps, и управляете Raspberry Pi или сервером с Pi-hole или другими сервисами, то Topgrade автоматизирует большую часть работы по администрированию. В ходе тестирования инструмента обновление системы прошло без проблем на Debian, Ubuntu и Fedora.

svg

Что вы думаете?

Показать комментарии / Оставить комментарий

Комментировать

svg
Быстрая навигация
  • 01

    Topgrade — обновление системы в один клик