1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
Return to an earlier package version
Using the pacman cache
If a package was installed at an earlier stage, and the pacman cache was not cleaned, install an earlier version from /var/cache/pacman/pkg/.
This process will remove the current package and install the older version. Dependency changes will be handled, but pacman will not handle version conflicts. If a library or other package needs to be downgraded with the packages, please be aware that you will have to downgrade this package yourself as well.
# cd /var/cache/pacman/pkg/
# pacman -U <file_name_of_the_package>
Once the package is reverted, temporarily add it to the IgnorePkg section of pacman.conf, until the difficulty with the updated package is resolved.
Downgrading the kernel
If you are unable to boot after a kernel update, then you can downgrade the kernel via a live CD. Use a fairly recent Arch Linux installation medium. Once it has booted, mount the partition where your system is installed to /mnt, and if you have /boot or /var on separate partitions, mount them there as well (e.g. mount /dev/sdc3 /mnt/boot). Then chroot into the system:
# arch-chroot /mnt /bin/bash
Here you can go to /var/cache/pacman/pkg and downgrade the packages. At least downgrade linux, linux-headers and any kernel modules. For example:
# pacman -U linux-3.5.6-1-x86_64.pkg.tar.xz linux-headers-3.5.6-1-x86_64.pkg.tar.xz virtualbox-host-modules-4.2.0-5-x86_64.pkg.tar.xz
Exit the chroot (with exit), reboot and you should be done.
Arch Linux Archive
The Arch Linux Archive is a daily snapshot of the official repositories.
The ALA can be used to install a previous package version, or restore the system to an earlier date.
Rebuild the package
If the package is unavailable, find the correct PKGBUILD and rebuild it with makepkg.
For packages from the official repositories, retrieve the PKGBUILD with ABS and change the software version. Alternatively, find the package on the Packages website, click "View Changes", and navigate to the desired version. The files are available through a .tar.gz snapshot, and via the Tree view.
See also Getting PKGBUILDs from SVN#Checkout an older revision of a package.
##How to downgrade one package
Find the package you want under /packages. Download it and install it using pacman -U.
See also Downgrading packages#Automation for tools that simplify the process.
How to restore all packages to a specific date
To restore all packages to their version at a specific date, let's say 30 March 2014, you have to direct pacman to this date, by editing your /etc/pacman.conf and use the following server directive:
[core]
SigLevel = PackageRequired
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch
[extra]
SigLevel = PackageRequired
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch
[community]
SigLevel = PackageRequired
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch
or by replacing your /etc/pacman.d/mirrorlist with the following content:
##
## Arch Linux repository mirrorlist
## Generated on 2042-01-01
##
Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch
Then update the database and force downgrade:
# pacman -Syyuu
|