Sure. My current use case is preparing a nodejs v20 container image similar
to previous versions at [1]. I want to use the latest stable fedora and
explicitly want only nodejs v20 in the container (which is not the default
one in F38).

I also want to install nodejs-nodemon into the container to make the
feature set to be on pair with previous versions, but that ends up with
pulling nodejs 18 (the default) as well, because of the dependency on
/usr/bin/node.

Having different versions of packages like nodejs-nodemon in Fedora repos
does not seem to be technically needed, one RPM build seems to be fine for
more nodejs versions. I believe we did it the same in previous design with
modules -- we only installed nodejs and npm from the module, but had
nodejs-nodemon available in the repos in a single instance and it worked
fine with all nodejs versions.

Does that make more sense now? Maybe I'm trying to solve it too
complicated, feel free to suggest any other solution.

[1] https://github.com/sclorg/s2i-nodejs-container/

Honza

On Tue, Jul 11, 2023 at 7:27 PM Stephen Gallagher <[email protected]>
wrote:

> On Tue, Jul 11, 2023 at 11:19 AM Honza Horak <[email protected]> wrote:
> >
> > The current implementation of alternative nodejs versions in a single
> Fedora (say 38), is this:
> > * the main version (v18 in F38) ships /usr/bin/node
> > * alternative versions ship only /usr/bin/node-XX
> >
> > Node modules packaged as RPM (e.g. nodejs-nodemon) then often include
> this hard dependency: Requires: /usr/bin/node
> >
> > Suppose I want to install only the alternative (non-default) version of
> node and install a module nodejs-nodemon (that can run fine with any nodejs
> version). I cannot do this at this point, because the nodejs-nodemon pulls
> in the default node as a dependency.
>
> I think you need to be more explicit about why you want to only
> install a non-default version AND run this tool. This is very much
> part of the design: applications packaged in Fedora RPMs are not
> expected to be runnable against an arbitrary Node binary. They specify
> the one they are known to work with explicitly through package
> dependencies.
>
> What is the use-case you're actually trying to solve?
> _______________________________________________
> nodejs mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/[email protected]
> Do not reply to spam, report it:
> https://pagure.io/fedora-infrastructure/new_issue
>
_______________________________________________
nodejs mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to