PackageKit 2.0 готовит полный разрыв API и масштабное обновление Linux
Проект PackageKit готовится к крупнейшему за более чем десять лет обновлению. Версия PackageKit 2.0 должна получить переработанную архитектуру, очищенный от устаревших компонентов код и полностью новый интерфейс взаимодействия с приложениями. Разработчики также планируют изменить механизм офлайн-обновлений Linux, сделав его более удобным и надежным для современных настольных систем.
PackageKit - это универсальный системный сервис, который связывает графические центры приложений с пакетными менеджерами конкретных дистрибутивов. Благодаря ему такие инструменты, как GNOME Software и KDE Discover, могут устанавливать, удалять и обновлять программы, не реализуя отдельную логику для APT, RPM и других форматов.
Планы по выпуску новой версии представил сопровождающий проекта Маттиас Клумпп. Работу над PackageKit 2.0 он намерен вести во второй половине 2026 года в рамках программы Sovereign Tech Fellow, которую поддерживает немецкое агентство Sovereign Tech Agency. Эта инициатива направлена на финансирование критически важных проектов с открытым исходным кодом.
Необходимость перемен объясняется тем, что традиционные пакетные системы никуда не исчезли. Несмотря на развитие контейнеров, Flatpak и других альтернатив, классические пакеты по-прежнему широко используются, особенно на рабочих станциях разработчиков, серверах и в корпоративной инфраструктуре. При этом сам PackageKit за последние годы практически не менялся, а его архитектура постепенно обросла устаревшими решениями и обходными механизмами.
Отдельное внимание уделяется безопасности. PackageKit работает в фоновом режиме и обладает полномочиями изменять программное обеспечение на уровне всей системы. Это делает сервис важной частью Linux-инфраструктуры, но одновременно повышает требования к его надежности и изоляции. Полноценная песочница для такого компонента сложна в реализации, поскольку PackageKit должен выполнять привилегированные операции с пакетами и системными файлами.
В новой версии разработчики намерены сократить объем кода, удалить функции, утратившие актуальность на современных Linux-десктопах, и предоставить графическим оболочкам более удобные возможности. Некоторые давние архитектурные проблемы, которые раньше приходилось обходить на уровне клиентских приложений, должны получить штатные решения.
Главным последствием модернизации станет несовместимость с прежними интерфейсами. PackageKit API практически не менялся более десяти лет, поэтому переход на версию 2.0 потребует обновления всех программ, которые напрямую используют его возможности. Разработчикам графических менеджеров пакетов, системных утилит и интеграционных модулей придется адаптировать код под новую модель взаимодействия.
Подробное описание будущих изменений опубликовано в материале о [полном разрыве интерфейсов PackageKit 2.0](https://linuxiac.com/packagekit-2-0-is-coming-with-a-complete-api-break-after-more-than-a-decade/). При этом новый выпуск не будет обычным промежуточным обновлением: речь идет о фундаментальной переработке проекта, которая может временно создать дополнительные задачи для сопровождающих дистрибутивов.
Одним из ключевых направлений станет переосмысление офлайн-обновлений. Сегодня установка обновлений через PackageKit иногда приводит к нескольким перезагрузкам, что неудобно для пользователей и особенно проблематично в организациях, где компьютеры должны оставаться доступными как можно дольше.
Клумпп рассматривает использование функции soft-reboot из современных версий systemd. Она позволяет перезапустить пользовательское пространство Linux без полной перезагрузки оборудования. Такой подход потенциально сократит время обновления и уменьшит количество обычных перезапусков. Однако концепция пока находится на раннем этапе, а окончательная реализация может потребовать дополнительных изменений в systemd.
Важно понимать, что PackageKit 2.0 не является прямым продолжением старого KPackageKit в виде нового графического менеджера. PackageKit - это серверная часть, на которой работают программные центры вроде KDE Discover и GNOME Software. Пользователь, который предпочитает командную строку, по-прежнему может использовать привычные инструменты: например, `apt update` и `apt upgrade` в Debian и Ubuntu.
Помимо PackageKit, значительный объем работы запланирован для AppStream. Этот проект отвечает за метаданные программ, отображаемые в графических каталогах приложений, а также используется экосистемами Flatpak и Flathub. Среди задач - добавление поддержки JPEG XL, изолированная обработка медиаданных, улучшенная интеграция с OARS, поддержка новых спецификаций и стабилизация API библиотеки `libappstream-compose`.
Большая часть перечисленных изменений уже близка к завершению. Релиз AppStream 1.2 особенно важен из-за подготовки нового окружения Freedesktop Flatpak. После его выхода обновленные возможности смогут быстрее получить Flatpak и Flathub, включая улучшенные описания приложений и более надежную обработку сопутствующих данных.
Также разработчики планируют заняться инфраструктурой Freedesktop.org. В планах - улучшение процессов сопровождения спецификаций, обработка накопившихся отчетов об ошибках и запросов на слияние, а также модернизация документации. Более удобный поиск по спецификациям должен упростить работу разработчиков дистрибутивов и приложений.
Пользователям, которые хотят заранее понять назначение проекта или найти сведения для установки, стоит учитывать, что запрос PackageKit скачать обычно приводит к пакетам из официальных репозиториев конкретного дистрибутива. Отдельный универсальный установочный файл, подходящий для всех систем, здесь не является типичным сценарием. Пакет устанавливается средствами APT, DNF, Zypper или другого штатного менеджера.
Будущее PackageKit для Linux во многом зависит от того, насколько быстро дистрибутивы и разработчики графических оболочек перейдут на новый интерфейс. Полный разрыв API может временно замедлить внедрение, однако в долгосрочной перспективе он позволит избавиться от накопившихся ограничений и подготовить проект к новым моделям управления программным обеспечением.
Если модернизация пройдет успешно, PackageKit сможет стать более компактным, безопасным и предсказуемым компонентом Linux. Особую пользу это принесет графическим центрам приложений, которым необходим единый механизм работы с разными пакетными форматами. При этом пользователи командной строки, вероятно, не заметят изменений напрямую - обновления будут проявляться прежде всего в работе фоновых сервисов и графических оболочек.


