Este es un proyecto que busca la seguridad y el minimalismo para automatizar la clonación de PKGBUILD y construcción a partir de ellos usando el AUR (Arch User Repository), ya que la forma clásica de instalar paquetes desde el AUR es de manera manual, sin embargo, ya que suele ser un proceso complejo, se crean estos programas, desafortunadamente, un helper puede ser riesgoso ya que ejecuta el PKGBUILD sin intervención humana, además que puede ocultar procesos importantes o incluso reemplazar herramientas clásicas, pues en los PKGBUILD pueden haber comandos maliciosos que se pueden ejecutar pidiendo permisos root, todo esto rompe la actividad clásica de usar las herramientas propias del sistema Arch Linux como Git, Makepkg, PacMan o su editor de preferencia.
El código fuente de KPA se encuentra en GitHub, está disponible como paquete python en versiones iguales y posteriores a 2.0.0 y para versiones anteriores a 2.0.0 está compilado para arquitecturas aarch64 y x86_64 con pyinstaller (disponibles en releases) y se puede automatizar la instalación vía kpa en AUR (el paquete kpa-bin ya no será mantenido oficialmente y solicité su eliminación del AUR).
Por cierto, esta documentación corresponde a la versión 3.0.0 de KPA y superiores que puedan existir.
kpa automatiza las herramientas propias de Arch, el entorno Linux y el control de versiones a diferencia de
otros AUR Helper que se limitan a sus propias implementaciones y/o reemplazan programas y no ofrecen una mejor
transparencia del proceso o un proceso de configuración para usar herramientas diferentes.
- Tiene varios comandos simples:
Ins: Instalar
Act: Actualizar
Des: Desinstalar
Limp: Limpiar el sistema
Conf: Configurar KPA mediante CLI y escribir esa configuración al archivo kpa.json
De estos comandos Ins y Act se pueden usar con --verbose para ver las salidas de Git (Solo a partir de la
versión 2.2.0).
A partir de la versión 3.0.0, Ins y Act tienen múltiples banderas, para consultarlas y ver que hace cada una,
use:
kpa Ins --help
# y/o
kpa Act --help
# A partir de la versión 3.2.0, Conf también tiene opciones propias:
kpa Conf --help
Puede ejecutar kpa --help para obtener más información de los comandos principales.
- Confirmación del usuario: Antes de usar makepkg, se muestra el PKGBUILD para que se pueda leer y decidir
dentro de la interfaz de consola del programa si quiere continuar o cancelar, además por defecto tiene un
detector de EULA que le advierte si un paquete lo contiene (aunque se puede desactivar).
- diffs y scripts .install: Desde la versión 3.0.0, KPA muestra, además del PKGBUILD, el script .install en una
instalación, y el diff de cambios en una actualización, premitiendo no depender solo del PKGBUILD y auditar
cambios rapidamente o supervisar que un archivo extra no ejecute comandos no deseados.
- Python puro: kpa sigue una filosofía minimalista, por ello no usa bases de datos del AUR, controles de
versiones innecesarios o configuraciones que no tienen que ver con la libertad o personalización, kpa solo sigue
su objetivo de automatizar y ser útil, por ello usa sus propias carpetas para almacenar los repositorios del AUR
clonados, para poder recorrerlos en actualizaciones, verificar su existencia y comparar PKGBUILDs gracias a
`pkgbuild-parser`, además de su propia forma de configuración liviana en JSON para darle libertad sobre como
quiere usar su AUR helper sin comprometer peso o portabilidad del programa.
- Sin tantas dependencias, solo Python y herramientas de desarrollo: kpa depende de las librerías propias de
Python y de unas cuantas externas, lo cual no debe ser un gran peso, ya que Python viene instalado en la mayoría
de sistemas, y las librerías externas se pueden instalar en un entorno virtual vía pip, además se usa solo lo
suficiente para la construcción de paquetes del AUR, o sea, Git y makepkg que según la wiki de Arch ya viene por defecto en el
paquete Pacman.
Visite este sitio para construir e instalar KPA.
En actualizaciones mayores, KPA necesita ser reconstruido, vea esta guía
Permite limpiar el sistema de paquetes innecesarios, actualmente soporta la limpieza de paquetes huérfanos y caché de la carpeta de KPA.
$ kpa Limp huerfanos
# O
$ kpa Limp cache
Al usar Limp huerfanos, KPA buscará paquetes que fueron instalados como dependencias pero que ya no
son requeridos por ningún paquete, y le preguntará si desea eliminarlos.
Al usar Limp cache, KPA eliminará los residuos de archivos comprimidos y carpetas src y pkg de la
carpeta donde KPA construye y almacena los PKGBUILD.
$ proxychains kpa Ins [PAQUETE]
Este archivo permite a KPA saber que programas externos usar o como se debe comportar, todo con el fin de
mejorar la experiencia y no limitar a que todo el que use KPA sea obligado a usarlo como lo usan los demás,
para que no existan problemas en caso de que no cree el archivo, KPA incluye una configuración interna que se
usa tanto si no existe el archivo de configuración como cuando solo configura algunas cosas.
A partir de la versión 1.5.0, puede definir solo las variables que desee sin que se produzcan errores.
A continuación, se explica para que se usan cada una de las variables en el archivo kpa.json en caso de que
quiera personalizar la experiencia:
El archivo se ubica en $XDG_CONFIG_HOME/kpa/kpa.json (normalmente
~/.config/kpa/kpa.json).
git clone --branch paquete --single-branch url_del_repo paquete o clonar de
manera normal.