KDE: Discover; arregla build Rust en AUR y tolerancia a fallos

- KDE: discover + packagekit-qt6 (tienda; backend flatpak ya vía flatpak)
- as_user exporta RUSTUP_HOME/CARGO_HOME: paquetes Rust (karere) no intentan
  escribir /root/.rustup bajo el fakeroot de makepkg
- install_aur instala uno a uno: un PKGBUILD roto ya no tumba el lote ni chezmoi

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-30 19:42:45 +02:00
co-authored by Claude Opus 4.8
parent f5f50db6e6
commit 1ee91d59c2
2 changed files with 18 additions and 5 deletions
+1
View File
@@ -60,6 +60,7 @@ install_pacman "${PACMAN_COMMON[@]}" \
plasma-desktop sddm plasma-pa plasma-nm powerdevil kscreen systemsettings \ plasma-desktop sddm plasma-pa plasma-nm powerdevil kscreen systemsettings \
kwallet-pam xdg-desktop-portal-kde breeze-gtk kde-gtk-config kvantum \ kwallet-pam xdg-desktop-portal-kde breeze-gtk kde-gtk-config kvantum \
konsole dolphin kate ark spectacle kcalc gwenview okular \ konsole dolphin kate ark spectacle kcalc gwenview okular \
discover packagekit-qt6 \
adwaita-fonts \ adwaita-fonts \
mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver
+17 -5
View File
@@ -38,8 +38,15 @@ AUR_COMMON=(
# --- helpers usados por los setup.sh -------------------------------------- # --- helpers usados por los setup.sh --------------------------------------
install_pacman() { pacman -S --needed --noconfirm "$@"; } install_pacman() { pacman -S --needed --noconfirm "$@"; }
# paru se construye como usuario normal (makepkg no corre como root) # paru se construye como usuario normal (makepkg no corre como root).
as_user() { sudo -u "$INSTALL_USER" bash -lc "$*"; } # RUSTUP_HOME/CARGO_HOME explícitos: bajo el fakeroot de makepkg, HOME pasa a
# /root y rustup intenta crear /root/.rustup (permission denied, uid real != root).
# rustup respeta RUSTUP_HOME antes que HOME, así que apuntarlo al home del usuario
# arregla los paquetes Rust (p.ej. karere).
as_user() {
sudo -u "$INSTALL_USER" bash -lc \
"export RUSTUP_HOME=\$HOME/.rustup CARGO_HOME=\$HOME/.cargo; $*"
}
bootstrap_paru() { bootstrap_paru() {
command -v paru &>/dev/null && return 0 command -v paru &>/dev/null && return 0
@@ -55,9 +62,14 @@ bootstrap_paru() {
} }
install_aur() { install_aur() {
# ponytail: paru en una sola llamada; si un PKGBUILD falla, falla el lote. # Uno a uno: que un PKGBUILD roto (p.ej. karere) no se lleve por delante el
# upgrade path: instalar uno a uno con un bucle si necesitas tolerancia a fallos. # resto del lote ni el chezmoi init posterior. Avisa de los que fallen.
as_user "paru -S --needed --noconfirm $*" local p failed=()
for p in "$@"; do
as_user "paru -S --needed --noconfirm $p" || failed+=("$p")
done
((${#failed[@]})) && echo "!! AUR falló (revisa a mano): ${failed[*]}" >&2
return 0
} }
# archinstall 4.3 instala el paquete grub pero NO ejecuta grub-install con # archinstall 4.3 instala el paquete grub pero NO ejecuta grub-install con