![](https://seccdn.libravatar.org/avatar/6cb665c0842e037d85b2cfd814623aa0.jpg?s=120&d=mm&r=g)
Darryl Gregorash wrote:
On 2024-05-11 06:06, Atri Bhattacharya wrote:
Darryl Gregorash wrote: I had a suspicion you would sooner or later be saying this. The most likely reason you have all these development packages installed is because they were recommended by something else. They got installed because your zypper configuration allows installation of recommended packages. To stop this, (as root) load /etc/zypp/zypp.conf into your favourite editor, and find "solver.onlyRequires". Most likely it is set to "false". Change that to "true" (without the quotes) and save the file. As a packager for a few openSUSE packages, I die a little inside whenever I see anyone recommend this, frankly reckless (I do not mean it with malice towards anyone, but it just is), configuration to not-so-experienced users. Long-ish rant follows — please humour me — but TL;DR: You should only set no-recommends as the default zypp behaviour **if and only if** you fully understand what its implications are and what `Requires`, `Recommends`, `Supplements`, and especially `Supplements: (pkgA and pkgB)` in an RPM specfile convey. You are guaranteed to miss out on important features that the packager — who works on the package and really understands what additional features its 'Recommends' provides — intends the default user to benefit from. Please consider the following examples (from Tumbleweed, but they apply to ANY distro, not even limited to openSUSE): Thanks for your comments; they are very informative, and welcome.
Sincerely appreciate your read-through and feedback.
I do have only one observation: If a package adds important features that users will find beneficial, or even nearly essential, to supplement the features they want on their systems, then perhaps the package should be a "require", not a "recommend".
No, requires are those packages without which a package would manifestly break. In the first example, not having the file-manager integration icons and context menu does not break anything existing in the system. Both the file-manager and owncloud-client perform fine regardless, you simply do not get the feature that the integration package provides. Furthermore, an experienced user may actually not want this integration, so making them Recommends allows them to uninstall the package without breaking any behaviour. A requires would not allow its removal without also removing owncloud-client itself. In the 2nd case, requires would not work. It would force the package to be installed on a -v3 supporting hardware, so, for instance — and among other things, you would not be able to remove them to benchmark how the base non-v3 packages perform for comparison. The main decision as to whether a pkg should be required or recommmended is typically made on the basis of the following question: if an experienced user, say, for reasons related to having a minimal system, were to remove a package, would it break any functionality of the packages left installed in the system? Of course its removal would kill certain features — there is no 'no-op' package — but would it leave anything broken? If yes, then require it, if not, then recommend it. Hope that helps. Cheers, -- Atri