I need to downgrade xmonad because after the latest upgrade it crashes when I run a specific program (fldigi specifically). Contrary to question How do you downgrade multiple packages in arch linux?, I need to downgrade packages recursively with their dependencies.

In order to downgrade xmonad I need to downgrade haskell-x11 which depends on haskell-... which depends on ~20 other packages, but only ~20. In this case the set of packages does not spiral out of control, though it's enough that working through it one at a time is going to be tedious.

Once I have verified that downgrading fixes the problem I intend to roll forward again and help the people who actually know Haskell to debug this problem.

  • 2
    Possible duplicate of How do you downgrade multiple packages in arch linux?
    – jasonwryan
    Jan 15, 2017 at 22:42
  • I looked at that question first, that question is about running several operations at the same time, though not recursivly Jan 15, 2017 at 22:44
  • 1
    The principle is exactly the same; you pass pacman a list of all the packages in your cache that you want to downgrade to. If it is a mess of dependencies, you use a tool like downgrade in the AUR.
    – jasonwryan
    Jan 15, 2017 at 23:14
  • Downgrade does not appear to have that feature. Neither does downgrader. If they do that would be a good answer to this question Jan 15, 2017 at 23:16
  • I'm really looking for a recursive solution that automates the process of discovering transient dependencies and downgrading them to meet the the dependencies of the old package version. If no way exists, that would also be an answer to this question Jan 15, 2017 at 23:18

1 Answer 1


This is a limitation of binary distribution. Every binary distribution sets certain policy and users are to follow it, or will have hard times. Specifically, you will be facing ABI breakage or need to rebuild complex chain of packages and install these packages parallel, which will go .. against Arch philosophy.

Arch philosophy of simplicity means integrating only latest releases into its core components, thus the choice of versions is actually not given by design, supposedly because that would complicate the toolchain too much.

As a contrast, deb-based distributions are capable of having multiple versions of packages with automatic dependency resolution. However it plays well only on upgrades, not downgrades. Downgrades usually end up in uninstallation of the whole package chain and reinstallation of the older versions. Its a long and time consuming task of setting package pins and purging. So, its hardly an ideal.

What you are trying to achieve here is a policy-free environment, where you yourself define the policy of the system. Basically, you need a source-based distribution for this. I suggest Gentoo. However, this freedom has its price as most of the packages are unavailable in binary format. Also be sure to try Calculate Linux and RedCore, as they include larger pre-built binary repositories, while staying close to Gentoo roots.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .