Files
archpack/README.md
2026-11-13 20:10:01 +03:00

84 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).