Skip to content

Nodejs package fails to install, seems to set incorrect baseurl in nodesource.repo #463

@b-penn

Description

@b-penn

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 6.28
  • Ruby: n/a
  • Distribution: centOS 7.9
  • Module version: 9.0.0

How to reproduce (e.g Puppet code you use)

Puppet configuration pulled directly from puppet-nodejs documentation but uses 16.x repu_url_suffix:

class { 'nodejs': 
  repo_url_suffix => '16.x'
}

What are you seeing

After applying the manifest, nodejs fails to install.

Debug: Package[nodejs](provider=yum): Ensuring => present
Debug: Executing: '/bin/yum -d 0 -e 0 -y install nodejs'
Error: Execution of '/bin/yum -d 0 -e 0 -y install nodejs' returned 1: Error downloading packages:
  2:nodejs-16.19.1-1nodesource.x86_64: [Errno 256] No more mirrors to try.
Error: /Stage[main]/Nodejs::Install/Package[nodejs]/ensure: change from 'purged' to 'present' failed: Execution of '/bin/yum -d 0 -e 0 -y install nodejs' returned 1: Error downloading packages:
  2:nodejs-16.19.1-1nodesource.x86_64: [Errno 256] No more mirrors to try.

In addition, baseurl seems to be overwritten with the incorrect version for some reason, switching from the expected /pub_16.x to /pub_12.x.

Notice: /Stage[main]/Nodejs::Repo::Nodesource::Yum/Yumrepo[nodesource]/baseurl: baseurl changed 'https://rpm.nodesource.com/pub_16.x/el/7/$basearch' to 'https://rpm.nodesource.com/pub_12.x/el/7/$basearch'
Debug: /Stage[main]/Nodejs::Repo::Nodesource::Yum/Yumrepo[nodesource]: The container Class[Nodejs::Repo::Nodesource::Yum] will propagate my refresh event
Notice: /Stage[main]/Nodejs::Repo::Nodesource::Yum/Yumrepo[nodesource-source]/baseurl: baseurl changed 'https://rpm.nodesource.com/pub_16.x/el/7/SRPMS' to 'https://rpm.nodesource.com/pub_12.x/el/7/SRPMS'
Debug: /Stage[main]/Nodejs::Repo::Nodesource::Yum/Yumrepo[nodesource-source]: The container Class[Nodejs::Repo::Nodesource::Yum] will propagate my refresh event
Debug: Class[Nodejs::Repo::Nodesource::Yum]: The container Stage[main] will propagate my refresh event
Debug: Class[Nodejs::Repo::Nodesource::Yum]: The container Class[Nodejs::Repo::Nodesource] will propagate my refresh event
Debug: Class[Nodejs::Repo::Nodesource]: The container Stage[main] will propagate my refresh event

baseurl is of course written out by puppet-nodejs in /etc/yum.repos.d/nodesource.repo.

[nodesource]
name=Node.js Packages for Enterprise Linux 7 - $basearch
baseurl=https://rpm.nodesource.com/pub_12.x/el/7/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL
failovermethod=priority

What behaviour did you expect instead

Based on documentation, I expect puppet-nodejs to install the major version of nodejs defined in the repu_url_suffix parameter. In this case, 16.x

Output log

Any additional information you'd like to impart

After the manifest has run and failed, but nodesource.repo has been place, I can try and run the package install command manually.

sudo /bin/yum install nodejs
---> Package nodejs.x86_64 2:16.19.1-1nodesource will be installed
...
nodejs-16.19.1-1nodesource.x86 FAILED
https://rpm.nodesource.com/pub_12.x/el/7/x86_64/nodejs-16.19.1-1nodesource.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found

The package url is indeed trying to reference the incorrect pub_12.x version specific in nodesource.repo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions