X Linux
Menú de documentación

Resumen/xpkg — builder de paquetes

xpkg - Uso

Cómo instalar y manejar xpkg: instalación, superficie de comandos, flags, configuración y los flujos típicos de empaquetado.

Documentos relacionados en esta carpeta:

Para el detalle completo de cada comando y flag, ver los documentos planos existentes: CLI Reference, XBUILD Specification, Packaging Guide, Installation Guide, Source Management, Package Signing, Repository Management y Linting Rules.


Instalación

Requisitos: Rust 1.70+ (edition 2021), Cargo y git. Herramientas runtime opcionales: fakeroot (método preferido para empaquetar sin root, auto-detectado) y strip (stripping de ELF, de binutils).

git clone https://github.com/xlnux/xpkg.git
cd xpkg
cargo build --release
sudo install -Dm755 target/release/xpkg /usr/local/bin/xpkg

Los valores por defecto de configuración funcionan sin ajustes. Para personalizar, copia etc/xpkg.conf.example a ~/.config/xpkg/xpkg.conf y edítalo.

Comandos

ComandoDescripción
xpkg buildConstruye un paquete .xp desde una receta XBUILD o PKGBUILD
xpkg lint <pkg>Ejecuta comprobaciones de calidad sobre un paquete construido
xpkg info <pkg>Muestra los metadatos del paquete (soporta --files y --json)
xpkg verify <pkg>Verifica la integridad del paquete y su firma OpenPGP
xpkg new <name>Genera una plantilla XBUILD nueva
xpkg srcinfoGenera salida estilo .SRCINFO desde un XBUILD
xpkg repo-add <db> <pkg>Añade un paquete a una base de datos de repositorio
xpkg repo-remove <db> <name>Quita un paquete de una base de datos de repositorio

Flags globales

FlagShortDescripción
--config <PATH>-cFichero de configuración propio (por defecto ~/.config/xpkg/xpkg.conf)
--verbose-vAumenta la verbosidad (-v, -vv, -vvv)
--no-confirmOmite los prompts de confirmación
--no-colorDesactiva la salida en color

build - Construir un paquete

Ejecuta el pipeline completo: parsear receta, obtener fuentes, prepare, build, check, package, strip, archive, sign.

FlagShortDescripción
--file <PATH>-fFichero de receta (por defecto ./XBUILD)
--pkgbuildParsear la receta como PKGBUILD en vez de XBUILD
--builddir <PATH>-dDirectorio de build (anula la config)
--outdir <PATH>-oDirectorio de salida del .xp (anula la config)
--no-checkOmite la fase check()
--signFirma el paquete tras construirlo (requiere sign_key)
xpkg build                             # Construye desde ./XBUILD
xpkg build -f path/to/XBUILD          # Construye desde un fichero concreto
xpkg build --pkgbuild -f ./PKGBUILD   # Construye desde un PKGBUILD
xpkg build --no-check -o ./out        # Omite tests, salida en ./out
xpkg build --sign                      # Construye y firma el paquete

lint - Lint de un archivo de paquete

Extrae el archivo, lee .PKGINFO y ejecuta todas las reglas de lint.

Argumento/FlagDescripción
PACKAGERuta al archivo de paquete .xp
--strictTrata los warnings de lint como errores (exit code 1)
xpkg lint hello-2.12-1-x86_64.xp
xpkg lint hello-2.12-1-x86_64.xp --strict

Categorías de lint: permisos, rutas, metadatos, dependencias y análisis ELF. Ver Linting Rules para la lista completa.

info - Mostrar metadatos del paquete

Inspecciona un archivo .xp sin instalarlo.

Argumento/FlagShortDescripción
PACKAGERuta al archivo de paquete .xp
--files-lLista todos los ficheros contenidos en el paquete
--jsonSalida de metadatos en JSON (legible por máquina)
xpkg info hello-2.12-1-x86_64.xp           # Metadatos legibles
xpkg info hello-2.12-1-x86_64.xp --files   # Incluye el listado de ficheros
xpkg info hello-2.12-1-x86_64.xp --json    # Salida JSON para scripting

verify - Verificar la integridad del paquete

Verifica la firma detached OpenPGP de un paquete .xp. Busca un fichero .xp.sig junto al paquete.

Argumento/FlagShortDescripción
PACKAGERuta al archivo de paquete .xp
--key <PATH>-kFichero de clave pública o keyring
xpkg verify hello-2.12-1-x86_64.xp --key packager.pub
xpkg verify hello-2.12-1-x86_64.xp -k /etc/xpkg/trusted.gpg

new - Crear una plantilla XBUILD

Argumento/FlagShortDescripción
PKGNAMENombre del paquete
--outdir <PATH>-oDirectorio de salida (por defecto ./<PKGNAME>/)
xpkg new hello                  # Crea hello/XBUILD
xpkg new mylib -o packages/     # Crea packages/XBUILD

srcinfo - Generar source info

Produce salida estilo .SRCINFO desde un XBUILD parseado y validado.

FlagShortDescripción
--file <PATH>-fFichero XBUILD (por defecto ./XBUILD)
xpkg srcinfo                     # Imprime en stdout
xpkg srcinfo > .SRCINFO          # Escribe la salida a .SRCINFO

repo-add / repo-remove - Gestión de repositorio

Gestiona una base de datos compatible con ALPM (myrepo.db.tar.zst por defecto; también .db.tar.gz y .db.tar.xz, auto-detectados por extensión). La base de datos se crea automáticamente en el primer add.

xpkg repo-add myrepo.db.tar.zst hello-2.12-1-x86_64.xp
xpkg repo-add myrepo.db.tar.zst hello-2.12-1-x86_64.xp --sign

xpkg repo-remove myrepo.db.tar.zst hello
xpkg repo-remove myrepo.db.tar.zst hello --sign

Añadir un nombre de paquete ya existente reemplaza la entrada por la nueva versión. Ver Repository Management para instrucciones de hospedaje.

Códigos de salida

CódigoSignificado
0Éxito
1Error general (receta inválida, fallo de build, errores de lint, firma mala)
2Uso inválido (argumentos ausentes, flags desconocidos)

Variables de entorno

VariableDescripción
RUST_LOGAnula el filtro de nivel de log de tracing (p. ej. RUST_LOG=debug)

Durante los builds, estas variables se exponen a los scripts de build:

VariableDescripción
PKGDIRDirectorio destino de los ficheros instalados
SRCDIRDirectorio con los ficheros fuente extraídos
BUILDDIRDirectorio de build de nivel superior
MAKEFLAGSFlags de make desde la config
CFLAGSFlags del compilador C desde la config
CXXFLAGSFlags del compilador C++ desde la config
LDFLAGSFlags del linker desde la config

Configuración

Fichero de configuración: ~/.config/xpkg/xpkg.conf (TOML), o cualquier ruta pasada con --config. Secciones clave:

  • [options] - builddir, outdir, sign, sign_key, método/nivel de compresión, strip_binaries
  • [environment] - MAKEFLAGS, CFLAGS, CXXFLAGS, LDFLAGS
  • [lint] - activar/desactivar linting, modo estricto
[options]
builddir = "/tmp/xpkg-build"
outdir = "."
strip_binaries = true
compress = "zstd"       # zstd | gzip | xz
compress_level = 19

[environment]
makeflags = "-j$(nproc)"
cflags = "-march=x86-64 -O2 -pipe"
cxxflags = "-march=x86-64 -O2 -pipe"

Ver etc/xpkg.conf.example para todas las opciones.

Flujos típicos

  1. Paquete nuevo - xpkg new hello, editar hello/XBUILD, xpkg build, inspeccionar con xpkg info, comprobar calidad con xpkg lint, instalar con sudo xpm install hello-...-x86_64.xp.
  2. Compatibilidad Arch - conservar un PKGBUILD existente y ejecutar xpkg build --pkgbuild -f ./PKGBUILD.
  3. Publicación - xpkg repo-add x.db.tar.zst pkg-...-x86_64.xp dentro del directorio hospedado; opcionalmente --sign de la base de datos.
  4. Configuración de firma - exportar una clave secreta a ~/.config/xpkg/signing.key, fijar sign = true y sign_key en la config, construir con --sign.

Editar esta página en GitHub