Quante volte ci è capitato di voler effettuare il downgrade di un pacchetto ad una versione precedente? O quante volte, aggiornando il Kernel, abbiamo avuto problemi e voler tornare alla versione precedente? Bene… in questo tutorial vedremo, nel limite del possibile, come effettuare un Downgrade di un pacchetto o un rollback del kernel.
Downgrade di un pacchetto:
Per effettuare il downgrade “veloce” di un pacchetto è necessario NON aver svuotato la cache di pacman, che corrisponde al comando:
$ sudo pacman -Scc
o al comando numero [12] di yaourt-gui.
Se solitamente non svuotiamo la cache, possiamo procedere come segue:
Il primo passo da fare è cercare all’interno della directory contenente i pacchetti in cache, la versione del pacchetto disponibile, quindi, spostiamoci all’interno della cartella:
$ cd /var/cache/pacman/pkg
e cerchiamo il paccheto da dover degradare (ad esempio wicd), utilizzando anche il comando:
$ ls | grep wicd
ovviamente sostituiamo “wicd” con il pacchetto che vogliamo. Avremo un output come questo:
alessio@ntbkarch pkg $ ls | grep wicd wicd-1.7.0-1-any.pkg.tar.xz wicd-gtk-1.7.0-1-any.pkg.tar.xz
Controlliamo l’attuale versione del pacchetto il comando:
$ sudo pacman -Q <nome-pacchetto>
a questo punto dobbiamo semplicemente rimuovere l’attuale pacchetto con il comando:
$ sudo pacman -R <nome-pacchetto>
e installare la vecchia versione con il comando:
$ sudo pacman -U /var/cache/pacman/pkg/<nome-pacchetto>-<versione>-<release>-<arch>.pkg.tar.xz
nell’esempio di wicd:
$ sudp pacman -U /var/cache/pacman/pkg/wicd-1.7.0-1-any.pkg.tar.xz
A questo punto se non abbiamo problemi di dipendenze, il downgrade è eseguito con successo, mentre se riscontriamo problemi con le stesse dobbiamo rimuovere le dipendenze e reinstallare una versione precedente come visto sopra.
Può capitare però che la versione precedente del pacchetto non si trovi nella cache. Per ovviare dobbiamo cercarlo e scaricarlo da QUI, rimuovere l’attuale versione sempre con il comando:
$ sudo pacman -R <nome-pacchetto>
recarci nella directory dove abbiamo scaricato il file e installare la vecchia versione sempre con il comando:
$ sudo pacman -U <nome-pkg>.tar.xz
RollBack del Kernel
La stessa procedura vista sopra, è possibile utilizzarla anche per effettuare il downgrade del kernel. Ovviamente se il sistema ha grossi problemi e non riusciamo ad entrare nella shell, dobbiamo utilizzare un’altro metodo, ovvero effettuare il chroot del proprio HardDisk utilizzando il CD di installazione. Vediamo come fare.
Inseriamo il CD e avviamo il sistema, in base alla nostra architettura, come se dovessimo effettuare l’installazione. Una volta entrati nella shell prepariamoci per il chroot.
Impostiamo la tastiera in italiano con il comando:
$ loadkeys it
Montiamo la partizione di root “/” del nostro disco con il comando:
$ mount /dev/sdaN /mnt
dove “N” è il numero della partizione di root “/” e “sda” è il device. Se abbiamo la partizione di boot “/boot” separata dobbiamo ricordarci di monatarla:
$ mount /dev/sdaN /mnt/boot
Montiamo a questo punto anche sys, proc e dev in questo modo:
$ mount -t sysfs none /mnt/sys $ mount -t proc none /mnt/proc $ mount --bind /dev /mnt/dev
A questo punto possiamo procedere con il “chroot” lanciando da terminale il comando:
$ chroot /mnt
Lanciato il chroot è come se si avesse il proprio sistema normalmente e quindi possibile lanciare il downgrade del kernel, sempre se presente nella cache, con il comando:
$ pacman -U /var/cache/pacman/pkg/linux-<versione>.pkg.tar.gz
a questo punto riavviamo, togliamo il CD, e facciamo partire normalmente il sistema.
* NOTA Se il kernel non fosse presente nella cache è possibile scaricarlo da QUI utilizzando il comando wget o copiandolo da una chiavetta USB e installarlo, come visto sopra, attraverso il comando “pacman -U“.
Per ulteriori info visita la Wiki ufficiale.