Próbowałem uruchomić instalację npm na moim pliku package.json, ale mam wiele problemów. Ciągle mówi „Błąd: próba odblokowania XXX, który nie został zablokowany” na wszystkich moich zależnościach. Oto jeden z nich:
Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked
at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11)
at cb (/usr/local/lib/node_modules/npm/lib/cache.js:646:5)
at /usr/local/lib/node_modules/npm/lib/cache.js:655:20
at /usr/local/lib/node_modules/npm/lib/cache.js:1290:7
at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38
at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5)
at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22)
at Object.oncomplete (fs.js:107:15)
Jeśli spróbuję uruchomić go jako sudo, wydaje się, że idzie dalej i zaczynam instalować niektóre pakiety, ale zamiast tego pojawiają się nowe błędy:
> chokidar@0.8.1 postinstall /Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/chokidar
> node setup-deps.js
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
node.js:811
var cwd = process.cwd();
^
Error: EACCES, permission denied
at Function.startup.resolveArgv0 (node.js:811:23)
at startup (node.js:58:13)
at node.js:902:3
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q'
npm ERR! error rolling back karma@0.10.9 { [Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: 'ENOTEMPTY',
npm ERR! error rolling back path: '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q' }
npm ERR! Error: ENOENT, chown '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/socket.io/lib/socket.io.js'
Niedawno zaktualizowałem instalacje mojego węzła i npm. Może to ma z tym coś wspólnego. Poza tym większość moich prac rozwojowych odbywa się w biurze, a dziś pracuję przez VPN, więc może to ma coś wspólnego z tym.
Jakieś pomysły?
node.js
npm
karma-runner
TJ Kirchner
źródło
źródło
Odpowiedzi:
Zgodnie z photusenigma na: https://github.com/npm/npm/issues/4815
Uruchom te polecenia w oknie terminala (uwaga - NIE zamieniaj części $ USER ... to jest polecenie linuksowe, aby uzyskać użytkownika!):
... i ... jeśli jesteś na komputerze Mac (tak jak ja) i nadal widzisz błędy po uruchomieniu tych poleceń, uruchom to ostatnie i powinieneś być dobry. (Polecam spróbować przetestować, zanim to zrobisz. Nie lubię zmieniać uprawnień do CAŁEGO katalogu / usr / local, chyba że naprawdę wydaje się to konieczne!)
źródło
sudo chown -R `whoami` /usr/lib/node_modules/
chown
nie zmieniło~/.npm/_locks
dla mnie uprawnień . Mam swoją pracę, biegającsudo chown -R myname ~/.npm/_locks
sudo chown -R $USER /usr/local/lib/node_modules
? Uruchomiłem go przed przeczytaniem, że to nie jest dobry pomysł ..Po południu pracowałem ze współpracownikiem i zorientowałem się, na czym polega problem. Mój folder „.npm” w moim katalogu domowym był własnością użytkownika root, a nie mnie. Nie jestem pewien, co to spowodowało. Może w pewnym momencie zainstalowałem węzeł lub npm jako administrator root. W każdym razie właśnie uruchomiłem
sudo chown -R [username] .npm
i wreszcie mogłem ponownie uruchomićnpm install
polecenia z moich projektów!źródło
~/tmp/
lub w dowolnej lokalizacji, której węzeł używa jako lokalizacji tymczasowejW moim przypadku problemem było wywołanie npm z użytkownikiem, który nie ma katalogu HOME, więc na przykład następująca komenda się nie powiedzie:
Rozwiązaniem jest zapewnienie katalogu HOME, w którym
someUser
ma dostęp do zapisu:źródło
sudo -u someUser -i
, która uruchamia nową powłokę logowania. Przyjrzałem się temu trochę więcej, a kod buforujący w npm używa zmiennej npm.cache, którą domyślam się domyślnie$HOME/.npm/
. sudo może również zachowywać się inaczej, zależnie od konfiguracji zmiennej HOME, w zależności od konfiguracji oraz obecności lub braku opcji wiersza poleceń.Miałem ten sam problem i naprawiłem go, zmieniając persmisje zgodnie z przyjętą odpowiedzią:
Należy jednak unikać drugiego polecenia, ponieważ obniża ono uprawnienia zasobu systemowego (
sudo chown -R $USER /usr/local/lib/node_modules
). To nie jest dobry pomysł.Dla przypomnienia: „usr”
/usr/local
oznacza Unix System Resources .źródło
Nic z tego nie działało dla mnie. Musiałem uruchomić dosłownie jako root, wykonując następujące czynności:
Następnie pakiet zainstalowany w systemie Linux Ubuntu 14.04.
źródło
Następujące polecenie powinno rozwiązać problemy z uprawnieniami:
O innych oficjalnie zalecanych rozwiązaniach możesz przeczytać tutaj:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
źródło
Moje rozwiązanie:
w moim przypadku było:
Ale w końcu miałem ten sam problem
zadziałało !
źródło
Miałem ten sam problem i próbowałem naprawić uprawnienia / prawa własności do plików i katalogów związanych z npm przez wiele godzin, ale nie miałem z tym szczęścia.
Nagle okazało się, że mam
~/.npmrc
plik zcache
wpisem wskazującym na nieistniejący katalog. Usunięto tęcache
właściwość, aby użyć domyślnej lokalizacji pamięci podręcznej, a teraz została rozwiązana.źródło
Zrzeczenie się
Jestem użytkownikiem systemu Windows . Jednak mój zespół i ja natknęliśmy się na szereg problemów dotyczących błędów instalacji npm.
Problemy
Poniżej znajduje się lista wyciągniętych wniosków i możliwe radykalne rozwiązanie, które zawsze nas uratowało:
Włącz dzienniki npm, aby uzyskać lepszy wgląd w możliwe problemy z:
npm install --loglevel verbose
Rodnik
Zainstaluj rimraf na całym świecie
Uruchom rimraf na module_węzła :
Następnie spróbuj uruchomić:
Ostrzeżenie!
Lub brak tam. Zachowaj szczególną ostrożność co do polecenia
rimraf
. Nie ma żadnych ostrzeżeń, żadnych podpowiedzi, nie ma nic. Po prostu usuwa katalog z fazy ziemi, tak jakby nigdy go nie było. Wypróbuj na własne ryzyko.źródło