2

Это не ошибка, которую я могу воспроизвести на всех компьютерах Mac, вчера я смог запустить ее без проблем на втором ноутбуке, и это ошибка, которую я получаю из нескольких мест, пытаясь выполнить несколько задач, которые все терпят неудачу

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

Я впервые заметил это при попытке установить phantomjs через npm:

$ sudo npm install -g phantomjs
/usr/local/bin/phantomjs -> /usr/local/lib/node_modules/phantomjs/bin/phantomjs

> phantomjs@1.9.10 install /usr/local/lib/node_modules/phantomjs
> node install.js

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

node.js:815
    var cwd = process.cwd();
                  ^
Error: EACCES, permission denied
    at Function.startup.resolveArgv0 (node.js:815:23)
    at startup (node.js:58:13)
    at node.js:906:3

npm ERR! Darwin 13.4.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "phantomjs"
npm ERR! node v0.10.32
npm ERR! npm  v2.0.0
npm ERR! code ELIFECYCLE
npm ERR! phantomjs@1.9.10 install: `node install.js`
npm ERR! Exit status 8
npm ERR! 
npm ERR! Failed at the phantomjs@1.9.10 install script.
npm ERR! This is most likely a problem with the phantomjs package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node install.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls phantomjs
npm ERR! There is likely additional logging output above.

Аналогичная проблема также возникает при установке автономного пакета selenium из node.js:

$ sudo npm install -g selenium-standalone
/usr/local/bin/start-selenium -> /usr/local/lib/node_modules/selenium-standalone/bin/start-selenium

> selenium-standalone@2.43.1-2.9.0-1 install /usr/local/lib/node_modules/selenium-standalone
> node install.js

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

node.js:815
    var cwd = process.cwd();
                  ^
Error: EACCES, permission denied
    at Function.startup.resolveArgv0 (node.js:815:23)
    at startup (node.js:58:13)
    at node.js:906:3

Что, по-видимому, указывает на то, что он не связан ни с каким конкретным пакетом node.js, однако другие пакеты устанавливаются нормально (например, grunt-cli)

Наконец, в поисках ответов на этот вопрос я также нашел несколько вещей, которые имели проблемы, но не смогли решить данную проблему:

  1. Исправлены разрешения на моем жестком диске с помощью дисковой утилиты, проблемы были найдены и исправлены
  2. перезагрузился в рекавери и восстановил мой диск, на котором тоже были проблемы
  3. У sudo /usr/libexec/locate.updatedb была та же проблема. люди рекомендовали включить root и запустить его. Это позволило этой команде работать правильно, и в последующих запусках больше не было той же ошибки. Однако попытка этого же процесса с npm не помогла

Я не уверен, что еще может быть причиной проблемы.

2 ответа2

2

После дальнейших поисков я нашел здесь рабочий ответ. Мне нужен был флаг --unsafe-perm с установкой npm, который позволял правильно устанавливать неработающие пакеты

0

Столкнулся с той же проблемой.

/usr/local/bin/cordova -> /usr/local/lib/node_modules/cordova/bin/cordova
/usr/local/bin/ionic -> /usr/local/lib/node_modules/ionic/bin/ionic

> node-sass@3.4.2 install /usr/local/lib/node_modules/ionic/node_modules/node-sass
> node scripts/install.js

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
path.js:424
    var path = (i >= 0) ? arguments[i] : process.cwd();
                                                 ^

Error: EACCES: permission denied, uv_cwd
    at Error (native)
    at Object.posix.resolve (path.js:424:50)
    at startup (node.js:96:32)
    at node.js:968:3
npm ERR! Darwin 15.4.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "cordova" "ionic"
npm ERR! node v4.4.3
npm ERR! npm  v2.15.1
npm ERR! code ELIFECYCLE

npm ERR! node-sass@3.4.2 install: `node scripts/install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-sass@3.4.2 install script 'node scripts/install.js'.
npm ERR! This is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/install.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-sass
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! 
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

Используя команду:

sudo npm install --unsafe-perm -g cordova ionic

работал на меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .