Created
December 1, 2025 10:02
-
-
Save erincerys/999fc06a101ff53f34db04781d67277d to your computer and use it in GitHub Desktop.
Unbork pacman - correct time, update certificates, refresh keyring, reduce package cache, upgrade pacman and AUR helper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| function updateSystemClock() { | |
| # timedatectl timesync-status; echo | |
| _log stdout 'Synchronizing clock' | |
| sudo systemctl restart systemd-timesyncd || return 1 | |
| sleep 2; echo | |
| # systemctl status systemd-timesyncd; echo | |
| journalctl --lines=1 -xru systemd-timesyncd; echo | |
| } | |
| function upgradeAurHelper() { | |
| _log stdout 'Upgrading AUR helper' | |
| # sudo pacman -S "${PACMAN_ARGS[@]}" "$SYS_PACMAN_AUR_HELPER" | |
| _AUR_HELPER_BUILD_PATH="$HOME/pkg/${SYS_PACMAN_AUR_HELPER}" | |
| rm "${_AUR_HELPER_BUILD_PATH}.tar.gz" "${_AUR_HELPER_BUILD_PATH}/*" 2>/dev/null | |
| cd "$_AUR_HELPER_BUILD_PATH" || return 1 | |
| wget "https://aur.archlinux.org/cgit/aur.git/snapshot/${SYS_PACMAN_AUR_HELPER}.tar.gz" | |
| tar -xzf "${_AUR_HELPER_BUILD_PATH}.tar.gz" || return 1 | |
| makepkg -s || return 1; echo | |
| sudo pacman -U ${SYS_PACMAN_AUR_HELPER}*.pkg.tar.zst; echo | |
| cd - || return 1 | |
| } | |
| function reloadPacmanKeyring() { | |
| ## Upgrade management-related packages | |
| _log stdout 'Upgrading key management packages' | |
| sudo pacman -S "${PACMAN_ARGS[@]}" gpgme ca-certificates || return 1 | |
| sudo pacman -S "${PACMAN_ARGS[@]}" archlinux-keyring || return 1; echo | |
| ## Update and refresh key management database | |
| _log stdout 'Rebuilding repository key database' | |
| sudo pacman-key --init || return 1 | |
| sudo pacman-key --populate archlinux || return 1 | |
| # sudo pacman-key --refresh-keys | |
| } | |
| function fixpacman () { | |
| updateSystemClock || return 1; echo | |
| _log stdout 'Pruning package cache' | |
| sudo paccache -k3 -r || return 1; echo | |
| # local PACMAN_ARGS=('--needed' '--noprogressbar' '--noconfirm' '--color=never' '--quiet') | |
| local PACMAN_ARGS=('--needed' '--noconfirm' '--color=always' '--quiet') | |
| _log stdout 'Refreshing package index' | |
| sudo pacman -Sy "${PACMAN_ARGS[@]}" || return 1; echo | |
| _log stdout 'Upgrading pacman' | |
| # pacman --version; echo | |
| sudo pacman -S "${PACMAN_ARGS[@]}" pacman || return 1; echo | |
| reloadPacmanKeyring || return 1 | |
| upgradeAurHelper || return 1 | |
| _log stdout 'Upgrading AUR-based key management packages' | |
| "$SYS_PACMAN_AUR_HELPER" -S debian-keyring || return 1 | |
| }; export fixpacman |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment