Installing pacman breaks dependency replaced by yay

Josh Sherman
2 min read
Linux Arch Linux

Even though I’ve been using Arch Linux for a few years now, from time to time, I do run into small issues that are unique to Arch.

One such issue happened when I was trying to upgrade my system, only to be blocked immediately with some sort of dependency mis-match between pacman and my favorite Arch User Repository installer of the moment, yay.

Incidentally, I ran into this a while back, resolved it, and then forgot to write a post about it. Fortunately, when I went to upgrade my old laptop, that was over 700 packages behind, I ran into the same thing.

The full error message I was receiving when running yay -Syu was:

error: failed to prepare transaction (could not satisfy dependencies)
:: installing pacman (5.2.1-1) breaks dependency 'pacman<5.1.3' required by yay

As mentioned, this is a weird chicken and egg scenario where yay requires a certain version of pacman and the system wants to upgrade pacman to a newer version. Thus, yay blocks the upgrade because it would break it’s own dependency.

I found some unique solutions out there to try to work around this, but since it’s not very frequent of an issue, seeing as I only ran into it once in many years, it seemed like the best solution would be to simply remove yay, upgrade, then install yay again.

So that’s what I did.

Except this time around, I also ran into a similar issue with some other packages:

error: failed to prepare transaction (could not satisfy dependencies)
:: installing xorgproto (2019.2-2) breaks dependency 'dmxproto' required by libdmx
:: installing xorgproto (2019.2-2) breaks dependency 'xfdgaproto' required by liblibxxf86dga

Before I could worry about getting pacman and yay playing nicely again, I had to correct the aforementioned issues, by doing the following, which was posted in the latest news on archlinux.org:

su -c 'pacman -Rdd libdmx libxxf86dga'

After running that, I was able to run the following to remove yay, upgrade the system and then re-install yay manually from the Arch User Repository:

  1. Remove yay by running pacman -R yay.
  2. Upgrade the system using pacman by running su -c 'pacman -Syu'.
  3. Grab the latest PKGBUILD for yay by running curl -OJ 'https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=yay'.
  4. Build the package and install it by running makepkg -si.

Not much to it, and more than likely the last two commands are probably in your shell history since they are the same steps to install yay on a system without a wrapper for the Arch User Repository already installed.

Worth noting, there was a clever solution where you install yay-bin which gets you a pre-compiled version of yay. Nothing wrong with that solution, but I didn’t want to introduce another package when I didn’t have to.

Join the Conversation

Good stuff? Want more?

Weekly emails about technology, development, and sometimes sauerkraut.

100% Fresh, Grade A Content, Never Spam.

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Engineering Manager and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.

Currently Reading

Parasie Eve

Previous Reads

Buy Me a Coffee Become a Sponsor

Related Articles