3

我今天一直在努力解决这个问题,无法弄清楚问题出在哪里——不幸的是,谷歌并没有提供太多帮助。

我正在尝试遵循 AngularJS 教程,但无法安装 Karma。每次我尝试时都会收到一条错误消息,提示“检索当前目录时出错:getcwd:无法访问父目录:权限被拒绝”。

这是 bash 中输出的副本:

Barts-MacBook-Pro:~ bart$ sudo npm install -g karma
Password:
npm http GET https://registry.npmjs.org/karma
npm http GET https://registry.npmjs.org/karma
npm http 200 https://registry.npmjs.org/karma
npm http GET https://registry.npmjs.org/karma/-/karma-0.8.5.tgz
npm http 200 https://registry.npmjs.org/karma/-/karma-0.8.5.tgz
npm http GET https://registry.npmjs.org/chokidar
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/socket.io
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/xmlbuilder/0.4.2
npm http GET https://registry.npmjs.org/optimist/0.3.5
npm http GET https://registry.npmjs.org/colors/0.6.0-1
npm http GET https://registry.npmjs.org/LiveScript/1.0.1
npm http GET https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/istanbul/0.1.22
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/growly
npm http GET https://registry.npmjs.org/q
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/log4js
npm http GET https://registry.npmjs.org/http-proxy
npm http 304 https://registry.npmjs.org/chokidar
npm http 304 https://registry.npmjs.org/xmlbuilder/0.4.2
npm http 200 https://registry.npmjs.org/optimist/0.3.5
npm http GET https://registry.npmjs.org/optimist/-/optimist-0.3.5.tgz
npm http 200 https://registry.npmjs.org/colors/0.6.0-1
npm http GET https://registry.npmjs.org/colors/-/colors-0.6.0-1.tgz
npm http 304 https://registry.npmjs.org/LiveScript/1.0.1
npm http 304 https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/rimraf
npm http 200 https://registry.npmjs.org/coffee-script
npm http 200 https://registry.npmjs.org/colors/-/colors-0.6.0-1.tgz
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/growly
npm http 304 https://registry.npmjs.org/istanbul/0.1.22
npm http 200 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.2.12.tgz
npm http 304 https://registry.npmjs.org/log4js
npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.3.5.tgz
npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.2.12.tgz
npm http 200 https://registry.npmjs.org/glob
npm http 200 https://registry.npmjs.org/socket.io
npm http 200 https://registry.npmjs.org/http-proxy
npm http GET https://registry.npmjs.org/http-proxy/-/http-proxy-0.10.2.tgz
npm http 200 https://registry.npmjs.org/q
npm http GET https://registry.npmjs.org/q/-/q-0.9.3.tgz
npm http 200 https://registry.npmjs.org/lodash
npm http 200 https://registry.npmjs.org/http-proxy/-/http-proxy-0.10.2.tgz
npm http 200 https://registry.npmjs.org/q/-/q-0.9.3.tgz
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/socket.io-client/0.9.11
npm http GET https://registry.npmjs.org/policyfile/0.0.4
npm http GET https://registry.npmjs.org/base64id/0.1.0
npm http GET https://registry.npmjs.org/redis/0.7.3
npm http GET https://registry.npmjs.org/prelude-ls
npm http GET https://registry.npmjs.org/async/0.1.15
npm http GET https://registry.npmjs.org/dequeue/1.0.3
npm http GET https://registry.npmjs.org/semver
npm http GET https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/handlebars
npm http GET https://registry.npmjs.org/escodegen
npm http GET https://registry.npmjs.org/fileset
npm http GET https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/pkginfo
npm http GET https://registry.npmjs.org/utile
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/socket.io-client/0.9.11
npm http 304 https://registry.npmjs.org/policyfile/0.0.4
npm http 304 https://registry.npmjs.org/base64id/0.1.0
npm http 304 https://registry.npmjs.org/redis/0.7.3
npm http 304 https://registry.npmjs.org/prelude-ls
npm http 304 https://registry.npmjs.org/dequeue/1.0.3
npm http 200 https://registry.npmjs.org/async/0.1.15
npm http GET https://registry.npmjs.org/async/-/async-0.1.15.tgz
npm http GET https://registry.npmjs.org/active-x-obfuscator/0.0.1
npm http GET https://registry.npmjs.org/uglify-js/1.2.5
npm http GET https://registry.npmjs.org/xmlhttprequest/1.4.2
npm http GET https://registry.npmjs.org/ws
npm http 304 https://registry.npmjs.org/semver
npm http 304 https://registry.npmjs.org/readable-stream
npm http 304 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/esprima
npm http 200 https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/handlebars
npm http 304 https://registry.npmjs.org/fileset
npm http 304 https://registry.npmjs.org/nopt
npm http 304 https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/abbrev
npm http 304 https://registry.npmjs.org/pkginfo
npm http 304 https://registry.npmjs.org/which
npm http 304 https://registry.npmjs.org/utile
npm http 304 https://registry.npmjs.org/active-x-obfuscator/0.0.1
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/deep-equal
npm http GET https://registry.npmjs.org/i
npm http GET https://registry.npmjs.org/ncp
npm http 200 https://registry.npmjs.org/uglify-js/1.2.5
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
npm http 304 https://registry.npmjs.org/xmlhttprequest/1.4.2
npm http 200 https://registry.npmjs.org/async/-/async-0.1.15.tgz
npm http 304 https://registry.npmjs.org/rimraf
npm http 304 https://registry.npmjs.org/deep-equal
npm http 304 https://registry.npmjs.org/i
npm http 304 https://registry.npmjs.org/ncp
npm http 200 https://registry.npmjs.org/escodegen
npm http GET https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz
npm http 200 https://registry.npmjs.org/ws
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
npm http 200 https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz
npm http 200 https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/estraverse
npm http GET https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/estraverse
npm http 304 https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/amdefine
npm http 200 https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/zeparser/0.0.5
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/tinycolor
npm http GET https://registry.npmjs.org/options
npm http 304 https://registry.npmjs.org/zeparser/0.0.5
npm http 304 https://registry.npmjs.org/tinycolor
npm http 304 https://registry.npmjs.org/options
npm http 200 https://registry.npmjs.org/commander

> ws@0.4.25 install /usr/local/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
/usr/local/bin/karma -> /usr/local/lib/node_modules/karma/bin/karma
karma@0.8.5 /usr/local/lib/node_modules/karma
├── pause@0.0.1
├── dateformat@1.0.2-1.2.3
├── xmlbuilder@0.4.2
├── colors@0.6.0-1
├── chokidar@0.6.2
├── growly@1.1.1
├── mime@1.2.9
├── q@0.9.3
├── coffee-script@1.6.2
├── lodash@1.1.1
├── glob@3.1.21 (inherits@1.0.0, graceful-fs@1.2.0)
├── rimraf@2.1.4 (graceful-fs@1.2.0)
├── optimist@0.3.5 (wordwrap@0.0.2)
├── LiveScript@1.0.1 (prelude-ls@0.6.0)
├── minimatch@0.2.12 (sigmund@1.0.0, lru-cache@2.3.0)
├── log4js@0.6.3 (dequeue@1.0.3, semver@1.1.4, async@0.1.15, readable-stream@1.0.2)
├── http-proxy@0.10.2 (pkginfo@0.2.3, utile@0.1.7)
├── istanbul@0.1.22 (abbrev@1.0.4, which@1.0.5, fileset@0.1.5, nopt@2.0.0, wordwrap@0.0.2, async@0.1.22, mkdirp@0.3.5, esprima@0.9.9, handlebars@1.0.10, escodegen@0.0.21)
└── socket.io@0.9.14 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-client@0.9.11)
Barts-MacBook-Pro:~ bart$

我正在运行节点 0.10.4,顺便说一句。

不幸的是,我现在有点茫然,所以任何帮助都将不胜感激!

非常感谢,

巴特

编辑 - 2017 年 1 月

我最初在 OSX Mountain Lion 上问过这个问题,但我在新版本的 OSX 上也遇到了类似的问题。我在下面编辑了我的答案,以包括我认为对所有OSX 版本更好的解决方案。

4

1 回答 1

6

好的,所以我进一步研究了这一点,并尝试了以下方法:

sudo npm install -g ws

这是实际上无法安装的软件包。从那里谷歌搜索在 StackOverflow 上找到了这个:Trouble installed tower module - ws module crashs。这将引导我在我的 Macbook Pro 上启用 root 帐户的说明:http: //support.apple.com/kb/ht1528

完成后,我现在可以在 bash 中执行以下命令以成功安装业力:

su
npm install -g karma

就是这样!希望这可以帮助遇到类似问题的其他人。

编辑 - 2017 年 1 月 - 更好的解决方案

为了避免不得不在 OSX 上使用 sudo 安装全局模块的整个过程,这可能导致 getcwd() 由于缺少权限而失败等奇怪的问题,我强烈建议使用 nvm 安装节点:https://github。 com/creationix/nvm。这还有一个好处是您还可以在同一台机器上使用多个版本的节点。

于 2013-04-23T17:05:31.247 回答