Ripristino dei pacchetti a una data specifica con Arch

A lcuni giorni fa, stanco dopo una giornata impegnativa, ho lanciato un aggiornamento del sistema. Quando aggiorno, guardo sempre quali pacchetti saranno interessati, ma quella sera non l’ho fatto. Tra questi aggiornamenti c’era anche il kernel alla versione 6.15.1.arch1-2 che sapevo avrebbe dato errori col driver nvidia-390xx, come vi ho raccontato — per la versione precedente — in Downgrade del kernel in Arch e in Driver nVidia 390 su kernel 6.14 in Arch Linux. Il processo di aggiornamento, ovviamente, è andato male:

<snip>
:: Esecuzione degli hook di post-transazione...
( 1/14) Reloading system manager configuration...
( 2/14) Restarting marked services...
( 3/14) Reloading device manager configuration...
( 4/14) Arming ConditionNeedsUpdate...
( 5/14) Updating module dependencies...
( 6/14) Install DKMS modules
==> dkms install --no-depmod nvidia/390.157 -k 6.15.1-arch1-2

Error! Bad return status for module build on kernel: 6.15.1-arch1-2 (x86_64)
<snip>

Era la sera del 10 giugno e la stanchezza mi impediva proprio di analizzare la situazione. Subito mi è venuto in mente il consiglio che mi diede @Lone_Wolf sul forum di Arch, vale a dire di riportare i pacchetti a una certa data, così abbiamo la certezza che tutto torni a funzionare, come se non avessimo lanciato quell’aggiornamento. Non avevo mai provato questo comando di pacman prima di allora, per cui «Quale migliore situazione di questa?», pensai. E mi sono lanciato!

Modifica del repository

La prima cosa da fare è modificare il repository:1

sudo nano /etc/pacman.d/mirrorlist

e commentare quelli attuali attivando questo:

Server=https://archive.archlinux.org/repos/ANNO/MESE/GIORNO/$repo/os/$arch

Al posto di ANNO, MESE e GIORNO inserire le date nel formato AAAA/MM/GG. Nel mio caso ho usato:

Server=https://archive.archlinux.org/repos/2025/06/08/$repo/os/$arch

Salvare e chiudere il file.

‘Aggiornamento’ del sistema

Adesso lanciare un ‘aggiornamento’ (si fa per dire!) del sistema con pacman:

sudo pacman -Syyuu

Il sistema riporterà la versione dei pacchetti installati a quella del giorno indicato prima.

Nel mio caso tutto è andato secondo le aspettative e al riavvio tutto era al proprio posto. Chiaramente era una situazione temporanea che mi consentiva l’uso del PC in attesa della creazione della patch per il driver nVidia 390. Patch che puntualmente è stata pubblicata, grazie ai manutentori del pacchetto su AUR. Dopo la pubblicazione bisogna riportare il file mirrorlist alla situazione originale oppure fare un bel refresh dei repository con reflector:

sudo reflector --verbose --country Italy,Germany --protocol https --age 6 --sort rate --latest 5 --save /etc/pacman.d/mirrorlist

  1. Quello descritto è uno dei due metodi previsti. Nel wiki di Arch sono spiegati entrambi in dettaglio. ↩︎