diff -ur npm-1.1.68-o/lib/link.js npm-1.1.68/lib/link.js --- npm-1.1.68-o/lib/link.js 2012-08-22 11:43:26.000000000 -0600 +++ npm-1.1.68/lib/link.js 2012-12-02 11:51:35.000000000 -0700 @@ -9,6 +9,7 @@ , chain = require("slide").chain , path = require("path") , rm = require("rimraf") + , globalPaths = require('module').globalPaths , build = require("./build.js") module.exports = link @@ -78,11 +79,24 @@ }) } - fs.lstat(pp, function (er, st) { - if (er) { + // find pp from globalPaths + asyncMap(globalPaths, function(f, cb) { + f = path.resolve(f, pkg) + fs.lstat(f, function(er, st) { + if (er) { + cb() + } else { + cb(null, f, st) + } + }); + }, function(er, f, st) { + pp = f && f[0] || path.resolve(npm.globalDir, pkg) + + if (er) return cb() + if (!f || !f[0]) { rp = pp return npm.commands.install(t, pkg, n) - } else if (!st.isSymbolicLink()) { + } else if (!st[0].isSymbolicLink()) { rp = pp next() } else {