Añade pkgsync: sincronización de paquetes entre máquinas (mismo patrón que chezmoi)
Nuevo pkgsync/pkgsync.sh + servicios systemd --user (push al cerrar sesión, pull+diff+notifica al iniciar sesión, sin aplicar cambios solo) usando metapac como motor de diff/aplicación sobre los arrays de packages-common.sh. Lista de paquetes críticos protegidos de borrado automático, fichero de overrides local para divergencias entre máquinas, y comandos de introspección (diff/log/incoming/audit). De paso, grub/efibootmgr y los drivers gráficos pasan de estar hardcodeados en cada <de>/setup.sh a vivir en PACMAN_COMMON, para que pkgsync pueda declararlos y protegerlos.
This commit is contained in:
@@ -37,6 +37,13 @@ PACMAN_COMMON=(
|
||||
linux linux-lts linux-lts-headers linux-firmware
|
||||
# rollback de actualizaciones atómicas sobre btrfs
|
||||
snapper snap-pac grub-btrfs
|
||||
# bootloader (antes hardcodeado en cada <de>/setup.sh, install_bootloader()
|
||||
# también los instala explícito -- duplicado inofensivo con --needed, pero
|
||||
# ahora viven aquí para que pkgsync pueda declararlos/protegerlos)
|
||||
grub efibootmgr
|
||||
# drivers gráficos open-source (antes hardcodeados en cada <de>/setup.sh;
|
||||
# mismo hardware físico en ambas máquinas, ver PROJECT_CONTEXT.md)
|
||||
mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver
|
||||
)
|
||||
|
||||
# --- Flatpak ---------------------------------------------------------------
|
||||
@@ -162,6 +169,25 @@ install_flatpaks() {
|
||||
return 0
|
||||
}
|
||||
|
||||
# pkgsync: sincroniza qué paquetes hay instalados (pacman+AUR+flatpak) entre
|
||||
# las dos máquinas, igual que chezmoi sincroniza los dotfiles. Instala metapac
|
||||
# (motor de diff/aplicación), despliega pkgsync.sh y sus dos servicios de
|
||||
# usuario, y deja el group file de metapac listo. Ver pkgsync/ en este repo.
|
||||
install_pkgsync() {
|
||||
echo ">> Instalando pkgsync (metapac + servicios de sincronización de paquetes)..."
|
||||
install_aur metapac
|
||||
|
||||
as_user "mkdir -p ~/.local/bin ~/.config/systemd/user ~/.config/metapac/groups"
|
||||
as_user "cp '$REPO_DIR/pkgsync/pkgsync.sh' ~/.local/bin/pkgsync.sh && chmod +x ~/.local/bin/pkgsync.sh"
|
||||
as_user "cp '$REPO_DIR/pkgsync/systemd/'*.service ~/.config/systemd/user/"
|
||||
as_user "~/.local/bin/pkgsync.sh bootstrap"
|
||||
as_user "systemctl --user enable pkgsync-push.service pkgsync-pull.service"
|
||||
|
||||
# ya lo activa el run_once de chezmoi, pero por si este DE se instala algún
|
||||
# día sin chezmoi: idempotente, no hace nada si ya está activo.
|
||||
loginctl enable-linger "$INSTALL_USER" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# Configura snapper + snap-pac + grub-btrfs para rollback de actualizaciones.
|
||||
# snap-pac crea snapshots automaticos antes/después de cada 'pacman -Syu'.
|
||||
# grub-btrfs añade las entradas de snapshots al menú de GRUB.
|
||||
|
||||
Reference in New Issue
Block a user