To nie jest błąd, który mogę odtworzyć na wszystkich komputerach Mac, mogłem wczoraj uruchomić ten problem na drugim laptopie i jest to błąd, który otrzymuję z wielu lokalizacji, które próbują wykonać wiele zadań, które wszystkie kończą się niepowodzeniem
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
Po raz pierwszy zauważyłem to, próbując zainstalować phantomjs przez npm:
$ sudo npm install -g phantomjs
/usr/local/bin/phantomjs -> /usr/local/lib/node_modules/phantomjs/bin/phantomjs
> [email protected] 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! [email protected] install: `node install.js`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the [email protected] 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.
Podobny problem występuje również podczas instalowania pakietu selenium-standalone z node.js:
$ sudo npm install -g selenium-standalone
/usr/local/bin/start-selenium -> /usr/local/lib/node_modules/selenium-standalone/bin/start-selenium
> [email protected] 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
Co wydaje się wskazywać, że nie jest on powiązany z żadnym konkretnym pakietem node.js, jednak inne pakiety instalują się dobrze (np. Grunt-cli)
W końcu, szukając odpowiedzi na to pytanie, znalazłem również kilka rzeczy, które miały problemy, ale nie były w stanie rozwiązać tego problemu:
- Naprawiono uprawnienia na moim dysku twardym za pomocą narzędzia dyskowego, problemy zostały odnalezione i naprawione
- uruchomiłem ponownie w celu odzyskania i naprawiłem mój dysk, który również miał problemy
- sudo /usr/libexec/locate.updatedb miał ten sam problem. ludzie zalecali włączenie roota i uruchomienie go. Pozwoliło to na prawidłowe działanie tego polecenia, a kolejne uruchomienia nie miały już tego samego błędu. Jednak wypróbowanie tego samego procesu z npm nie pomogło
Nie jestem pewien, co jeszcze może być przyczyną problemu.