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
-
Quello descritto è uno dei due metodi previsti. Nel wiki di Arch sono spiegati entrambi in dettaglio. ↩︎