Downgrading packages with Pacman & friends

From Manjaro Linux
Jump to: navigation, search
As well as the information on this page, there is a wiki
page called Using Downgrade [1] which I highly
recommend that you read. The Downgrade program takes
just about all of the hardwork out of both downgrading & 
finding all of the packages both on your machine & on the 
web that you can use. In fact it simplifies the process 
beyond belief.
_______________________________________________


Introduction

You can downgrade the packages that you think may be causing the problem. Providing you haven't cleaned your /var/cache/pacman/pkg cache of the installation packages (this wiki page provides an easy way to Maintain your Pacman Cache [2].

Once upon a time, if you didn't have the older version of the package on your machine, then it got a whole lot harder. These days, one of the benefits of using Downgrade [] is that it has made that problem easy to solve (providing you still have internet access).


A Pacman method

I do it via looking at the /var/log/pacman.log which is date/time coded down the left hand side which helps us navigate the file.

Then using the command line I change directory into where all the installation packages are stored using the following command:

cd /var/cache/pacman/pkg

Now that we are in the working directory it makes the next part a bit simpler.

We have to use the following command to install the previously installed version of the packages that need to be downgraded:

sudo pacman -U <package.name>.pkg.tar.xz

The whole name of the package must be identical to what it is called in the /var/cache/pacman/pkg directory, or it won't work.

The simplest way that I've found to list the contents of the /var/cache/pacman/pkg directory in a useful manner for this operation is to open a 2nd tab in my Terminal & use the following command (be sure to cd into the directory prior to using this command):

[handy@jarmano /var/cache/pacman/pkg]$ ls | more

Without the command prompt:

ls |more

Now you can move through the list of packages (the space bar moves to the next page & q quits the more display program) & highlight, copy, then move to the first Terminal tab & paste in the package name.

I use the cursor control keys to bring up the last package downgraded & then delete its name & paste in the next one after the sudo pacman -U .


Sometimes Trial & Error

It sounds harder & slower than it really is, the more you do it the more used to it you become & it just becomes a set of repetitive actions that go by pretty fast.

As far as choosing which packages to downgrade you have probably done some reading & know the most likely ones already. If they don't do it just look at that section of the pacman.log & choose more packages until you get it functioning.


Block the Offender(s)

After that you need to block those packages from being upgraded next time you want to upgrade your system. (At least until there is a new version of any offending package.)

To do that you need to use your editor in root mode to add the simple package names into the /etc/pacman.conf file, like so:

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
IgnorePkg   = ace-of-penguins nerolinux avidemux

Remove the # from in front of the IgnorePkg line, & add your package names after the equal sign, separated with a space.


Support

Following is a link to this page's forum counterpart where you can post any related feedback: [3]