Обнаружено при расследовании сломанного офлайн-обновления (discover/gnome-software, pk-offline-update) пакета unit на ALT Workstation p11 (см. баг #60494). Проблема 1. packagekitd при старте полностью очищает окружение (src/pk-main.c, clearenv() если не передан --keep-environment). В результате rpm-скриптлеты, запускаемые через бэкенд apt, выполняются без HOME и других переменных. Скриптлеты, полагающиеся на HOME (например, голый `cd`), падают. При обычной установке через apt-get из shell HOME=/root задан, поэтому проблема проявляется только при обновлении через PackageKit. Воспроизведение: env -u HOME apt-get install --reinstall unit-checkinstall → ошибка %prein. Предложение: после clearenv() устанавливать минимальное разумное окружение (как минимум HOME=/root, PATH, LANG) либо прокидывать его в скриптлеты. Проблема 2. Бэкенд apt игнорирует результат установки: backends/apt/apt-job.cpp, AptJob::installPackages() вызывает PM->DoInstall(showProgress, &m_progress) и безусловно возвращает true — код возврата и _error->PendingError() не проверяются. Из-за этого транзакция, в которой пакет фактически не установился (scriptlet failed), завершается со статусом success: PackageKit[881]: ошибка: %prein(unit-checkinstall-1.35.0-alt2.x86_64) scriptlet failed, exit status 1 PackageKit[881]: update-packages transaction /40_aaeeeeee from uid 0 finished with success Пользователь (и discover) не видит ошибки, а система остаётся со сломанными зависимостями. Версии: packagekit-1.3.6-alt1, одинаково в p11 и Sisyphus (код апстримный).