Thursday, April 19, 2012

Rolling back packages in Arch

Had an issue recently with Arch. I did a package upgrade through yaourt, and after rebooting the next day, I found some update caused some stability issues and seemed to be pegging one of my CPU cores. This made Arch and everything in it run REALLY slow, and lagged severely. However, if I killed X server (with 'init 3'), things ran fine.

Since it seemed to be a graphics issue, I checked my /var/log/pacman.log file to see what was updated. I immediately recognized nvidia driver, 295.40-2. I did some searching and found that I could roll back packages by using the pacman cache. I looked in the /var/cache/pacman/pkg directory and found I had several options to choose from for a rollback. I decided to go with the previous version, 295.33-2. I also decided to roll back nvidia-utils as well, just in case.
sudo pacman -U /var/cache/pacman/pkg/nvidia-295.33-2-i686.pkg.tar.xz /var/cache/pacman/pkg/nvidia-utils-295.33-1-i686.pkg.tar.xz
Once the downgrade was complete, I rebooted and everything is fine again. I'm sure it will be fixed in the next nvidia upgrade, but in the meantime, I need to find a way to ignore the nvidia upgrade when running yaourt. There is an undocumented --ignore option, same as pacman. You can specify multiple packages by separating them with a comma. So I am going to change my alias for my yaourt update command to look like this:
yaourt -Syua --ignore nvidia,nvidia-utils

No comments: