bigbang crea un metapaquete a partir de archivos locales
.tar.gz, .tar o .zip. Está
pensado para equipos que distribuyen paquetes internos sin depender de
un repositorio en línea. La generación nunca instala componentes ni
borra contenido del directorio de trabajo.
La API pública usa nombres en inglés para ser consistente con el ecosistema de R:
create_metapackage() crea la fuente del
metapaquete.install_local_pkg() instala un archivo local y sus
dependencias.diagnose_dependencies() busca dependencias
implícitas.scan_bigbang_artifact() examina artefactos históricos
sin cargarlos.Los nombres de packages incluyen la versión pero no la
extensión:
resultado <- create_metapackage(
name = "equipoverse",
packages = c("datos_1.2.0", "reportes_0.9.1"),
pkg_dir = "ruta/a/instalables",
ext = ".tar.gz",
dest_dir = tempdir(),
document = TRUE
)
resultadoEl destino debe ser nuevo o estar vacío. Esta restricción evita conservar hooks o scripts generados por versiones antiguas vulnerables. Nunca regenere in-place una fuente cuya procedencia no haya sido verificada.
La instalación es explícita. library(equipoverse) solo
adjunta los componentes ya instalados e informa cuáles faltan. Para
instalar desde los archivos locales:
El metapaquete generado lleva adentro los archivos de sus
componentes, así que la llamada no necesita argumentos. Eso también
significa que para entregarlo a otra persona alcanza con el
equipoverse_0.1.0.tar.gz construido: lo instala y llama a
equipoverse_install(), sin la carpeta de archivos al lado y
sin acordar ninguna ruta de antemano. El valor predeterminado de
pkg_dir es
system.file("archives", package = "equipoverse"), que se
resuelve al ejecutar el instalador y por eso apunta a la biblioteca
donde quedó instalado.
Genere con include_archives = FALSE cuando los archivos
deban permanecer en una ubicación a la que todos los destinatarios ya
tengan acceso; en ese caso equipoverse_install() va a pedir
un pkg_dir explícito.
La política predeterminada cran_deps = "skip" no accede
a la red. Las alternativas son "error" (falla sin red) e
"install" (intenta instalar desde repos). Los
paquetes locales se instalan una sola vez en orden topológico; los
ciclos producen una condición bigbang_error_cycle.
upgrade = "newer" instala solo archivos más nuevos;
"always" reinstala y "never" conserva
cualquier versión instalada. force = TRUE equivale a
"always". Los metapaquetes generados ofrecen
<meta>_conflicts() y respetan
options(<meta>.quiet = TRUE). Si cli no
está disponible, el mensaje de arranque vuelve al banner ASCII sin
fallar.
Un ZIP que contiene Meta/package.rds se considera un
binario de Windows y solo se instala en Windows con
type = "win.binary". Los demás ZIP con DESCRIPTION se
extraen en un directorio temporal propio y se instalan como fuente.
El escáner nunca carga el paquete y funciona en fuentes, tarballs, ZIP e instalaciones:
Si detecta firmas V1/V2/V3/V7, no ejecute library(),
devtools::document() ni hooks del artefacto. Genere una
versión nueva en una ruta vacía con la versión actual de
bigbang, vuelva a escanearla y recién entonces constrúyala
e instálela.
Los ejemplos usan la entrada más simple: stems resueltos en un
directorio. No es un requisito. Cualquier elemento de
packages que sea un archivo existente se usa como ruta, así
que los componentes pueden venir de varios directorios en una misma
llamada, mezclar .tar.gz, .tar y
.zip, y no llevar la versión en el nombre —la identidad y
la versión salen del DESCRIPTION de cada archivo—. Un
componente también puede ser un directorio fuente, que se empaqueta con
el paquete opcional pkgbuild, o la lista entera puede vivir
en un manifiesto bajo control de versiones.
Dos opciones que conviene conocer antes de generar algo en serio:
plan <- create_metapackage(..., dry_run = TRUE)
plan$order # el orden de instalación que se usaría
plan$findings # todos los hallazgos de validación, sin escribir nadadry_run = TRUE no crea el destino. Y
update = TRUE regenera un proyecto existente en el mismo
lugar, reescribiendo solo los archivos que bigbang escribió —se niega si
alguno fue modificado a mano, y nunca toca lo que no escribió—.
Vea ?create_metapackage para el conjunto completo,
incluido on_component_error para generar a partir de un
conjunto parcialmente roto, tolerate para relajar de a una
las verificaciones de prolijidad, e install_upgrade para
fijar la política de actualización del instalador emitido.
Los mensajes de ejecución tienen inglés como fuente y traducción
completa al español mediante gettext. En R 4.2 o posterior puede usar
Sys.setLanguage("es"); en versiones anteriores, defina
LANGUAGE=es antes de iniciar R. La ayuda Rd se publica en
inglés, como requiere CRAN. Cuando rhelpi18n madure y
llegue a CRAN se evaluará publicar un módulo separado
bigbang.es para traducir también la ayuda interactiva.