# archpack Графический менеджер пакетов и обновлений для Arch Linux: проверяет обновления, обновляет систему через `pacman` или `yay`, ищет и ставит пакеты — без терминала. Написан на C++ и Qt 6 Quick (QML, Qt Quick Controls Basic). ## Возможности - **Проверка обновлений** — через `checkupdates` из `pacman-contrib`: список пакетов с версиями «было → стало» и прогрессом скачивания и установки. - **Обновление системы** — `pacman -Syu` или `yay -Syu`; способ выбирается в меню (≡) в правом верхнем углу. - **Поиск и установка** — `yay -Ss` / `pacman -Ss`, до 100 результатов; установка выбранного пакета одной кнопкой. - **Пароль sudo** — вводится в диалоге и не сохраняется: для `sudo -A` создаётся временный askpass-скрипт в приватном каталоге (`0700`), который удаляется после операции. - **Тёмная тема** в цветах Catppuccin Mocha, интерфейс на русском. ## Требования - Arch Linux (приложение рассчитано на pacman и на других дистрибутивах не работает); - Qt 6.10 или новее (в репозиториях Arch — Qt 6.12); - `pacman-contrib` — для `checkupdates`; - `sudo` — для обновления и установки; - `yay` — необязательно: без него поиск и установка идут через `pacman`, но AUR-пакеты недоступны. ## Установка Из AUR: ```bash yay -S archpack ``` Запуск: `apparchpack` или «Archpack» в меню приложений. > Пакет ставит бинарник `apparchpack` — так называется target в > `CMakeLists.txt`, хотя сам пакет называется `archpack`. ## Сборка из исходников ```bash sudo pacman -S --needed base-devel cmake qt6-declarative pacman-contrib cmake -B build-release -S . -DCMAKE_BUILD_TYPE=Release cmake --build build-release ./build-release/apparchpack ``` Проект открывается в Qt Creator как обычный CMake-проект. ## Как это работает Приложение не работает с pacman API напрямую: оно запускает штатные утилиты через `QProcess` и разбирает их вывод. | Действие | Команда | |---|---| | Проверка обновлений | `checkupdates` | | Обновление через pacman | `sudo -A env LC_ALL=C COLUMNS=300 pacman -Syu --noconfirm` | | Обновление через yay | `yay --noconfirm -Syu` | | Поиск | `yay -Ss` или `pacman -Ss` | | Установка | `yay -S <пакет>` или `pacman -S <пакет>` | Команды в таблице упрощены: в коде дополнительно выставляются `--answerclean`, `--answerdiff`, `--answeredit` и `--answerupgrade` в `None` для yay, а также переменные окружения `LC_ALL=C` и `COLUMNS=300` — чтобы разбирать стабильный англоязычный вывод. Пароль передаётся только через временный `SUDO_ASKPASS`. ## Ограничения - Только Arch Linux и производные с pacman. - Своей базы пакетов и проверки подписей нет: всё делает pacman. - Интерфейс на русском, тёмная тема без переключателя. ## Лицензия MIT — см. [LICENSE](LICENSE).