this post was submitted on 15 Jul 2024
13 points (93.3% liked)

Arch Linux

7759 readers
1 users here now

The beloved lightweight distro

founded 4 years ago
MODERATORS
 

Some packages install in under a minute, while alternatives which seem functionally similar, take hours.

Sometimes there are several available options to fit a use case and I would like to use it now. Is it possible to anticipate which one will likely be the fastest to get rolling?

Generally I like to install via yay.

Searching around here is what I learned. Agree?:

  • AUR will be slower
  • Certain categories of package, like web browser, are inherently slow
  • Selecting -bin will be faster if available

Is there some way to guess beyond that? Certain programing languages take longer than others? Is it in relationship to existing packages on the system? Other characteristic? Some kind of dry-run feature to estimate?

Obviously I don't have the fastest computer. I have added MAKEFLAGS="-j4" to /etc/makepkg.conf so at least all 4 cores can get used.

Once I realize a package is going to take ages to get ready, is it possible to safely intervene to stop the process? I try to avoid it because in general I understand arch-based distros don't like "partial" installs. But is it safe to stop compiling? No changes have yet been made, right?

all 7 comments
sorted by: hot top controversial new old
[–] [email protected] 12 points 4 months ago* (last edited 4 months ago)

It depends on many things. The webbrowser thing is just because of the size of the package.

AUR is not necessarily slower. It depends on if you have to compile it or not, size of build dependencies...

There are too many variables.

If you install AUR things with yay or paru... It's pretty safe to just Ctrl+C once. It should clean everything up.

In any case, yes, the *-bin packages generally are pre-compiled, so someone else has done the effort already, so your install is just way faster.

[–] [email protected] 7 points 4 months ago

Once I realize a package is going to take ages to get ready, is it possible to safely intervene to stop the process? I try to avoid it because in general I understand arch-based distros don't like "partial" installs. But is it safe to stop compiling? No changes have yet been made, right?

AUR helper do that user friendly, just cancel the process with CTRL-C
the package gets installed only at the END of the compilation

compiling manually (no PKGBUILD or AUR helper) will be different, especially if don't build a package first
things like make install usually don't and can leave a mess

[–] [email protected] 6 points 4 months ago (1 children)

In my experience larger packages (in terms of file space requirements) install slower, but download speed is a factor there too.

Cancelling compilation is safe to my knowledge. No changes were made as you stated. Just remember that the downloaded files will probably still be in your cache afterwards, so you may want to remove that with paccache.

You mention "partial installs," but the actual issue is partial upgrades. A partial upgrade is when you don't upgrade the entire system, but only one or more packages. A partial install isn't really a term people use, but could probably refer to installing a package without its dependencies being installed.

[–] [email protected] 2 points 4 months ago

Ya you're right I am thinking "partial upgrade"; I just thought the concept might generalize.

I guess the worst that could happen with a partial install would be some deps installed in the system but then not actually required.

[–] [email protected] 3 points 4 months ago

The biggest difference will be between binary packages and packages that compile from source. Yes, big binary packages like browsers take longer but it really doesn't take that long. You should be able to quit the compilation without problems. Only after the compilation is done will the package manager be invoked to install the resulting binary.

[–] [email protected] 2 points 4 months ago

My biggest issue with YAY is the occasional mandatory compiling of an app seemingly randomly, so I go in thinking a quick update will turn into a much slower one because of the compiling it does. I haven't looked into it, but if there was a way to alert before doing this via a flag, it'd save me time and sometimes frustration.

I have learned over the years to try to install the -bin version as much as possible, but sometimes that's not enough if flagged out of date (Joplin especially), so I sometimes end up installing the appimage.