84 lines
3.9 KiB
Markdown
84 lines
3.9 KiB
Markdown
# 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).
|