The Curious Case of AUR Updates Fetching 30 GB of Data for Electron

No one has time for a 30 GB update, right?
Warp Terminal

I am using CachyOS on my primary system these days and pretty content with its performance.

Since it is based on Arch Linux, I am using a few software installed from the Arch User Repository (AUR) with Yay AUR Helper.

While updating, it showed me a few packages that required upgrades.

AUR update fetching GBs of Electron update

I did not pay attention as there was nothing alarming and pressed the usual enter keys one after another.

Only when it reached a certain stage that I realized that it was taking a lot longer to install these updates. I paid close attention at this stage and noticed an issue.

It was trying to download GBs of data for Electron.

Huge electron update from AUR
More than 25GB of updates? That's not usual
βœ…
Since it was fetching electron version 32, getting the binary from AUR itself easily fixed the issue:

yay -S electron32-bin

But there is more to it that I would like to discuss.

What's going on here?

In simpler terms, Elecron is a JavScript framework that builds a graphical interface of an application on top of the Chromium web browser. From VS Code to Discord, tons of popular applications are built on Electron.

When you run these applications, you are basically running a web browser underneath, and not everyone likes that. But it is easier to package an application, and the interface looks modern, and that's why it is popular.

Anyways, it is the functioning of AUR that complicates the issue here. It tries to build all the dependencies of a package.

It seems like at some point in the past, I just pressed enter keys without paying attention and somehow the AUR system thought that it needed to download a specific version of electron as a dependency.

The next problematic thing is that since it tries to build the package from source, it tries to get the entire source code of the Chromium project, which is in GBs.

What should you do in such case?

🚧
I am using electron32 in the example here. Your electron version might be different and thus, you MUST change the commands in the examples here to reflect the correct electron version.

First check what goes on with the troubled electron version. Where was it installed from and which packages require it?

pacman -Qi electron32

It gave me two interesting details. Electron32 came from the 'Extra' (cachyos-extra) repository and it was not required by any packages, not even as an optional dependency.

Inspect a pacman package

This was interesting and gave me the idea that perhaps it was of no use getting electron's other version using AUR. So, what I did was to exclude electron from the AUR update.

Exclude a package from AUR update
I entered 4 here to exclude electron from the update

And as I had guessed, rest of the three packages were updated without any issues. I wonder why AUR wanted to get it in the first place.

But your case might not be as smooth as mine and you may actually need to get the electron version it needs. But downloading 30GB of update is surely not the way forward.

Instead of getting the entire source code and then building the binaries from it, you can directly install the binary itself.

So, if it was complaining about elctron32 in my case, I would get the binary in this manner:

yay -S electron32-bin

And as you can see in the image below, it only needed a package of around 100 MB.

Downloading electron binary

I did this for demonstration purpose and since I had an existing electron version from another source, it showed me a potential conflict and asked me to remove the existing electron version.

Once that was done, it installed the electron32-bin package successfully.

Summary

When you are in a situation where AUR is downloading GBs of electron/chromium source code, you should do this:

  • See if you can exclude electron from the AUR update and the rest goes fine.
  • Otherwise, install the binary of the required electron version instead of getting the source code.

Hope this helps some of you awesome readers 😸

It's FOSS turns 13! 13 years of helping people use Linux ❀️

And we need your help to go on for 13 more years. Support us with a Plus membership and enjoy an ad-free reading experience and get a Linux eBook for free.

To celebrate 13 years of It's FOSS, we have a lifetime membership option with reduced pricing of just $76. This is valid until 25th June only.

If you ever wanted to appreciate our work with Plus membership but didn't like the recurring subscription, this is your chance πŸ˜ƒ

Get Lifetime Membership of It's FOSS
About the author
Abhishek Prakash

Abhishek Prakash

Created It's FOSS 13 years ago to share my Linux adventures. Have a Master's degree in Engineering and years of IT industry experience. Huge fan of Agatha Christie detective mysteries πŸ•΅οΈβ€β™‚οΈ

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

itsfoss happy penguin

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.