isaacs/npm — Issue #1653: sudo npm install -g express, npm link express : linkBins EPERM
Author: kapouer
Created: 2011-11-04 09:16:19+00:00
State: open

Hi,
here's what i do :

sudo npm -g install express
cd mysite
express .
npm link express

It seems it's trying to symlink bin/express into mysite/node_modules/express,
but that folder is itself a symlink to a folder without write permissions.

This gives :

```
info it worked if it ends with ok
verbose cli [ 'node', '/usr/bin/npm', 'link', 'express' ]
info using npm@1.0.103
info using node@v0.4.12
verbose config file /home/dev/.npmrc
verbose config file /usr/etc/npmrc
verbose config file /usr/share/npm/npmrc
info unbuild /home/dev/mysite/node_modules/express
verbose link symlinking /usr/local/lib/node_modules/express to /home/dev/mysite/node_modules/express
info build /home/dev/mysite/node_modules/express
silly testEngine { name: 'express',
silly testEngine description: 'Sinatra inspired web development framework',
silly testEngine version: '2.5.0',
silly testEngine author:
silly testEngine { name: 'TJ Holowaychuk',
silly testEngine email: 'tj@vision-media.ca' },
silly testEngine contributors:
silly testEngine [ { name: 'TJ Holowaychuk',
silly testEngine email: 'tj@vision-media.ca' },
silly testEngine { name: 'Aaron Heckmann',
silly testEngine email: 'aaron.heckmann+github@gmail.com' },
silly testEngine { name: 'Ciaran Jessup', email: 'ciaranj@gmail.com' },
silly testEngine { name: 'Guillermo Rauch', email: 'rauchg@gmail.com' } ],
silly testEngine dependencies:
silly testEngine { connect: '1.7.x',
silly testEngine mime: '>= 0.0.1',
silly testEngine qs: '>= 0.3.1',
silly testEngine mkdirp: '0.0.7' },
silly testEngine devDependencies:
silly testEngine { 'connect-form': '0.2.1',
silly testEngine ejs: '0.4.2',
silly testEngine expresso: '0.9.2',
silly testEngine hamljs: '0.5.1',
silly testEngine jade: '0.16.2',
silly testEngine stylus: '0.13.0',
silly testEngine should: '0.3.2',
silly testEngine 'express-messages': '0.0.2',
silly testEngine 'node-markdown': '>= 0.0.1',
silly testEngine 'connect-redis': '>= 0.0.1' },
silly testEngine keywords: [ 'framework', 'sinatra', 'web', 'rest', 'restful' ],
silly testEngine repository:
silly testEngine { type: 'git',
silly testEngine url: 'git://github.com/visionmedia/express.git' },
silly testEngine main: 'index',
silly testEngine bin: { express: './bin/express' },
silly testEngine scripts: { test: 'make test', prepublish: 'npm prune' },
silly testEngine engines: { node: '>= 0.4.1 < 0.7.0' },
silly testEngine _npmUser: { name: 'kapouer', email: 'kapouer@melix.org' },
silly testEngine _id: 'express@2.5.0',
silly testEngine _engineSupported: true,
silly testEngine _npmVersion: '1.0.103',
silly testEngine _nodeVersion: 'v0.4.12',
silly testEngine _defaultsLoaded: true }
verbose caching /home/dev/mysite/node_modules/express/package.json
verbose loadDefaults express@2.5.0
info preinstall express@2.5.0
verbose linkStuff [ false,
verbose linkStuff false,
verbose linkStuff false,
verbose linkStuff '/home/dev/mysite/node_modules' ]
info linkStuff express@2.5.0
verbose linkBins express@2.5.0
verbose bins linking [ { express: './bin/express' },
verbose bins linking '/home/dev/mysite/node_modules/.bin',
verbose bins linking false ]
verbose linkMans express@2.5.0
verbose rebuildBundles express@2.5.0
verbose rebuildBundles [ 'qs', 'mkdirp', 'connect', 'mime' ]
ERR! Error: EPERM, Operation not permitted '/home/dev/mysite/node_modules/express/bin/express'
ERR! Report this *entire* log at:
ERR!
ERR! or email it to:
ERR!
ERR!
ERR! System Linux 3.1.0-rc7
ERR! command "node" "/usr/bin/npm" "link" "express"
ERR! cwd /home/dev/mysite
ERR! node -v v0.4.12
ERR! npm -v 1.0.103
ERR! path /home/dev/mysite/node_modules/express/bin/express
ERR! code EPERM
verbose exit [ 1, true ]
```