View previous topic :: View next topic |
Author |
Message |
mcnutty Tux's lil' helper
Joined: 29 Dec 2009 Posts: 126
|
Posted: Mon Oct 07, 2024 8:34 pm Post subject: emerge --jobs=n but exclude packages by name? |
|
|
I have the following options in my /etc/make.conf:
Code: | EMERGE_DEFAULT_OPTS="--jobs=3 --load-average=24.0"
MAKEPOPTS="-j24" |
In general this significantly reduces the amount of time an update takes. However, there are a couple packages that screw everything up (i.e., chromium and qtwebengine). Chromium (or some other big package) will start to emerge, it will then take a a few minutes before it starts compiling heavily. During that time one or more other large packages will start emerging. Once they all get going, the load average will be well over 24 (possibly in the 50-60s) and I will run out of memory.
Is there a way to tell emerge to never merge a specific package (or packages) in parallel with others? |
|
Back to top |
|
|
Ralphred Guru
Joined: 31 Dec 2013 Posts: 596
|
Posted: Mon Oct 07, 2024 8:38 pm Post subject: |
|
|
Have you had any luck with /etc/portage/{env/,package.env/}, or is the die "already rolling" at that point? |
|
Back to top |
|
|
bstaletic Guru
Joined: 05 Apr 2014 Posts: 333
|
Posted: Mon Oct 07, 2024 8:46 pm Post subject: Re: emerge --jobs=n but exclude packages by name? |
|
|
mcnutty wrote: | Is there a way to tell emerge to never merge a specific package (or packages) in parallel with others? |
Not really, but you can get creative with /etc/portage/env and /etc/portage/package.env
https://wiki.gentoo.org/wiki/Package.env |
|
Back to top |
|
|
mcnutty Tux's lil' helper
Joined: 29 Dec 2009 Posts: 126
|
Posted: Mon Oct 07, 2024 8:52 pm Post subject: |
|
|
The problem arises because when chromium, or some other package, starts emerging the load factor is low and below my threshold, so emerge decides to start merging another package. But, when that next package is another large one, it will cause the failure because now I've got two huge packages building in parallel. (edit: for a variety of reasons this tends to happen on almost all large world updates)
I can reduce the MAKEOPTS jobs in an env file, but then that package will take forever if that package is being merged by itself. I'm not sure if you had something else in mind though. |
|
Back to top |
|
|
Ralphred Guru
Joined: 31 Dec 2013 Posts: 596
|
Posted: Mon Oct 07, 2024 9:24 pm Post subject: |
|
|
mcnutty wrote: | edit: for a variety of reasons this tends to happen on almost all large world updates |
You are beyond the native capabilities of portage. Start by making a "blacklist" of updates that break your "usual model", then push them into a temporary "package.mask", then run them as one package at a time after the fact as "one_at_a_time" packages.
Things like "qtwebengine", "firefox" and "chromium" aren't hard to identify before the fact, and /etc/portage/bashrc offers more than you need to sidestep "paradigm breaking" builds. |
|
Back to top |
|
|
|