Bug 1125868 - Symlink and the "inherits@2" directory name breaks output of `npm list -g`
Summary: Symlink and the "inherits@2" directory name breaks output of `npm list -g`
Keywords:
Status: CLOSED DUPLICATE of bug 986422
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: nodejs-inherits
Version: el6
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: T.C. Hollingsworth
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-08-01 09:25 UTC by Jan Kundrát
Modified: 2014-08-01 20:26 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-08-01 20:26:16 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Jan Kundrát 2014-08-01 09:25:26 UTC
Description of problem:

The `nppm list -g` complains about a ton of missed dependencies when using npm installed out-of-box on a SL6.5 with nodejs from EPEL.

Version-Release number of selected component (if applicable):

nodejs-inherits-2.0.0-4.el6.noarch
npm-1.3.6-5.el6.noarch
nodejs-0.10.28-1.el6.x86_64

How reproducible:

# yum install -y npm
# npm list -g

Actual results:

[root@mrsa ~]# npm list -g
npm WARN unmet dependency /usr/lib/node_modules/block-stream requires inherits@'~2.0.0' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /usr/lib/node_modules/fstream requires inherits@'~2.0.0' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /usr/lib/node_modules/fstream-ignore requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /usr/lib/node_modules/fstream-npm requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /usr/lib/node_modules/glob requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /usr/lib/node_modules/npmconf requires inherits@'~2.0.0' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /usr/lib/node_modules/tar requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
/usr/lib
├── abbrev.4
├── ansi.1
├── archy.2
├── asn1.11
├── assert-plus.4
├── async.10
├── aws-sign.0
├─┬ block-stream.7
│ └── UNMET DEPENDENCY inherits *
├── boom.2
├── child-process-close.1
├── chmodr.0
├── chownr.1
├── cmd-shim.0
├── combined-stream.4
├── config-chain.7
├── cookie-jar.0
├── couch-login.18
├── cryptiles.2
├── ctype.3
├── delayed-stream.5
├── editor.4
├── forever-agent.0
├── form-data.1
├─┬ fstream.24
│ └── UNMET DEPENDENCY inherits *
├─┬ fstream-ignore.7
│ └── UNMET DEPENDENCY inherits *
├─┬ fstream-npm.5
│ └── UNMET DEPENDENCY inherits *
├── github-url-from-git.1
├─┬ glob.6
│ └── UNMET DEPENDENCY inherits *
├── graceful-fs.0
├── hawk.0
├── hoek.1
├── http-signature.0
├── UNMET DEPENDENCY inherits *
├── inherits.0 (inherits@2) invalid
├── ini.0
├── init-package-json.10
├── json-stringify-safe.0
├── lockfile.2
├── lru-cache.0
├── mime.11
├── minimatch.12
├── mkdirp.5
├── mute-stream.4
├── node-gyp.6
├── node-uuid.1
├── nopt.2
├── normalize-package-data.1
├── npm.6
├── npm-registry-client.28
├── npm-user-validate.3
├─┬ npmconf.2
│ └── UNMET DEPENDENCY inherits *
├── npmlog.4
├── oauth-sign.0
├── once.1
├── opener.0
├── osenv.3
├── promzard.0
├── proto-list.2
├── qs.6
├── read.5
├── read-installed.4
├── read-package-json.3
├── request.0
├── retry.0
├── rimraf.2
├── semver.0
├── sha.1
├── sigmund.0
├── slide.5
├── sntp.4
├─┬ tar.18
│ └── UNMET DEPENDENCY inherits *
├── tunnel-agent.0
├── uid-number.3
└── which.5

npm ERR! missing: inherits@*, required by undefined@undefined
npm ERR! missing: inherits@*, required by block-stream.7
npm ERR! missing: inherits@*, required by fstream.24
npm ERR! missing: inherits@*, required by fstream-ignore.7
npm ERR! missing: inherits@*, required by fstream-npm.5
npm ERR! missing: inherits@*, required by glob.6
npm ERR! invalid: inherits.0 /usr/lib/node_modules/inherits@2
npm ERR! missing: inherits@*, required by npmconf.2
npm ERR! missing: inherits@*, required by tar.18
npm ERR! not ok code 0


Please note that this is a fresh installation, so I don't suppose bug #997978 is relevant.

Stuff can be fixed by these two steps:

[root@mrsa ~]# rm -rf /usr/lib/node_modules/inherits
[root@mrsa ~]# mv /usr/lib/node_modules/inherits@2 /usr/lib/node_modules/inherits

Anyway, I'm not familiar with now Node.js is supposed to be deployed or the way how modules are handled, but I suspect that at least some component chokes when the module names look like inherits@2. Simply cp-ing that directory to the place where the symlink was did not fix the output; `npm list -g` still complained about an invalid name of "inherits@2":

[root@mrsa ~]# npm list -g
/usr/lib
├── abbrev.4
├── ansi.1
├── archy.2
├── asn1.11
├── assert-plus.4
├── async.10
├── aws-sign.0
├── block-stream.7
├── boom.2
├── child-process-close.1
├── chmodr.0
├── chownr.1
├── cmd-shim.0
├── combined-stream.4
├── config-chain.7
├── cookie-jar.0
├── couch-login.18
├── cryptiles.2
├── ctype.3
├── delayed-stream.5
├── editor.4
├── forever-agent.0
├── form-data.1
├── fstream.24
├── fstream-ignore.7
├── fstream-npm.5
├── github-url-from-git.1
├── glob.6
├── graceful-fs.0
├── hawk.0
├── hoek.1
├── http-signature.0
├── inherits.0
├── inherits.0 (inherits@2) invalid
├── ini.0
├── init-package-json.10
├── json-stringify-safe.0
├── lockfile.2
├── lru-cache.0
├── mime.11
├── minimatch.12
├── mkdirp.5
├── mute-stream.4
├── node-gyp.6
├── node-uuid.1
├── nopt.2
├── normalize-package-data.1
├── npm.6
├── npm-registry-client.28
├── npm-user-validate.3
├── npmconf.2
├── npmlog.4
├── oauth-sign.0
├── once.1
├── opener.0
├── osenv.3
├── promzard.0
├── proto-list.2
├── qs.6
├── read.5
├── read-installed.4
├── read-package-json.3
├── request.0
├── retry.0
├── rimraf.2
├── semver.0
├── sha.1
├── sigmund.0
├── slide.5
├── sntp.4
├── tar.18
├── tunnel-agent.0
├── uid-number.3
└── which.5

npm ERR! invalid: inherits.0 /usr/lib/node_modules/inherits@2
npm ERR! not ok code 0

Comment 1 T.C. Hollingsworth 2014-08-01 20:26:16 UTC
This error is purely cosmetic and doesn't stop the modules from working in any way.  See https://bugzilla.redhat.com/show_bug.cgi?id=986422#c1 for some more detail.

This will likely be fixed properly when nodejs-0.12 arrives and we get a clean break to do the multiply versioned modules thing in a way that npm is happier with.

*** This bug has been marked as a duplicate of bug 986422 ***


Note You need to log in before you can comment on or make changes to this bug.