Hata: EACCES: izin reddedildi


110

Npm install lodash çalıştırıyorum ama hata atıyor : EACCES: izin reddedildi hatası. Bunun izin sorunu olduğunu biliyorum, ancak bildiğim kadarıyla, sudo izni yerel olarak düğüm modülünü kurmak için gerekli değil. Sudo ile çalıştırırsam, ~ / node_modules klasörüne yüklenir. drwxrwxr-x , mevcut klasörün dosya iznidir. Neyin yanlış gittiğini anlayamıyorum.

Hata mesajı aşağıdadır.

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/rupesh/Desktop/es6/npm-debug.log

klasör node_moduleskökünün sahibi mi?
AJS

node_module klasörü, lodash'ı kurmayı düşündüğüm klasörde henüz oluşturulmadı.
xruptronics

/ home / rupesh / dizininizde veya başka bir dizinde npm kurulumunu çalıştırdınız mı?
AJS

npm kurulumunu çalıştırdığım klasörün yolu ~ / Desktop / es6
xruptronics

neyin çıkış ls -l ~/Desktop | grep es6marka emin ES6 dizinin sahibi
AJS

Yanıtlar:


90

Bu komut sorunu çözer. Benim için çalıştı:

sudo npm install -g --unsafe-perm=true --allow-root

v10.10.0Benim gibi biri için, bu komut yazma sırasında işe yaramış gibi görünse de, Düğüm için şu hatayı aldım: "npm ERR! / Var / www / project yükleyemiyorum: Eksik paket adı"
Wayne Smallman

1
--Unsafe-perm = true --allow-root bayrakları, düğüm v10.15.0'ı kullanarak, node-sass'ın yüklenmeyeceği mevcut bir uygulamayı kullanıcı kökü olarak kurmak için bizim için çalıştı. Node-sass'ı yerel dizine node_modules klasörüne yüklemek için kullandığımız tam komut # npm install --save-dev --unsafe-perm = true --allow-root node-sass @ latest
Peter Edwards

Sorunu çözmek için root kullanabilirsiniz (ancak bu önerilmez).
Chris Marotta

Bu bayrakları kullanarak çalışmasını başardım, bu yüzden gerçekten cevap: sudo npm install -g --unsafe-perm = true --allow-root <package-name> @ <version-name>
Frank Hu MSFT

49

Ben global üzerinde webpack sunucu kurulumu ile aynı sorun var, kullan adımlar bu Url sorunumu, senin için be çalışmalarını çözüldü.

Yukarıda bahsedilen adımlar: Başlamadan önce bilgisayarınızı yedekleyin.

Global kurulumlar için bir dizin oluşturun:

1. mkdir ~/.npm-global

Yeni dizin yolunu kullanmak için npm'yi yapılandırın:

2.npm config set prefix '~/.npm-global'

Bir ~ / .profile dosyası açın veya oluşturun ve şu satırı ekleyin:

3.export PATH=~/.npm-global/bin:$PATH

Komut satırına geri dönün, sistem değişkenlerinizi güncelleyin:

4.source ~/.profile

Test: Sudo kullanmadan global olarak bir paket indirin .

npm install -g jshint

2-4. Adımlar yerine, ilgili ENV değişkenini kullanabilirsiniz (örneğin, ~ / .profile dosyasını değiştirmek istemiyorsanız):

NPM_CONFIG_PREFIX=~/.npm-global

1
Mojave üzerinde çalıştı. 4-5 saatlik sorun giderme işleminden sonra çok teşekkürler, bu hile yaptı!
Johnny

4. on Catalinasource ~/.zshrc
Radoslaw

14

Linux'ta sorun yaşadım. yazdım

chown -R myKullanıcıAdı ./* 

proje klasörümde.


8
Hiç tavsiye edilmiyor. Bu, tüm dizinlerinize dokunur ve herhangi birinin kök haklarını kaldırır. Bazı şeylerin kök olarak ayarlanması gerekiyorsa, bu mevcut yapılandırmanızı yok eder.
Patrick Da Silva

1
Katılıyorum @PatrickDaSilva. Bu tüm sunucumu mahvetti ..
Simon Degn

11

Npm init kullanarak package.json oluşturmak sorunumu çözdü.


Ancak nod modülünü package.json dosyası olarak kurarken package.json dosyasının neden gerekli olduğundan emin değilim, çünkü --save veya --save-dev veya benzeri bir komut kullanmadım.
xruptronics

bu garip. Sanırım npm conf'inizde bir şey karışıktı ve init'i sıfırlamak her neyse, başka bir yerde benzer bir soruna tek bir referans bulamadığım için sonsuza kadar bir gizem olmalı.
AJS

Npm 6.9.0 ile benzer bir sorun vardı ve bu benim için de çalıştı.
Chris Marotta

8

Gönderdiğiniz günlüklerinizde görebildiğim kadarıyla:

npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',

dizin /home/rupesh/node_modules/, dizin oluşturmak için gerekli izinlere sahip değil, chown -r rupesh:rupesh /home/rupesh/node_modules/bu yüzden bunu çalıştırın .


Chown yapıyor -R rupesh: rupesh / home / rupesh / node_modules / ve çalıştırma npm lodash'ı tekrar ~ / node_module klasörüne yükledim, ancak bu sefer hata vermiyor ama kurmayı düşündüğüm yer değil.
xruptronics

evet, projeyi Masaüstü yerine ana dizininizde oluşturmanız gerektiğini biliyorum. npm bazı nedenlerden dolayı modüllerinizi kuruyor /home/rupesh/node_modules. Ana dizininizde herhangi bir şekilde çalışmak ideal olmalıdır
AJS

~ / Projects / es6'nın ~ / Desktop / es6 yapısına eşdeğer olduğunu düşünüyorum. Anlamakta zorlandığım şey node_modules'in neden es6 klasöründe oluşturulmadığı ve neden lodash (veya her neyse) modülünün bunun içine yüklenmediği. Bu konuyla daha önce karşılaşmamıştım ama bugün ters giden şey, çözmek istediğim şey bu.
xruptronics

evet, önceki iki yorumumu okudum ve aptallığın farkına vardım :), etrafa baktım ve aynı sorunu yaşayan başka birini bulamadım. Kodunuz loadashmodülü bulabiliyor mu?
AJS

8

Bu, sorunumu hemen çözdü - mac Mojave 10.14.6 - PhpStorm.

İşlenmeyen ret Hata: EACCES: izin reddedildi, mkdir '/Users/myname/.npm/_cacache/index-v5/fb/5a'

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

Orijinal gönderi: https://stackoverflow.com/a/50639828


7

others(Rx) için yazma izinlerine sahip değil . İle deneyin

chmod a+w <folder>

ve tekrar et.


2
Does not chownbir var -riçinde her klasöre kullanmak zorunda önleme seçeneği node_modules?
DrakaSAN

@Juanjo Salvador İşe yaramadı, aynı hatayı atıyor.
xruptronics

@DrakaSAN evet, chown'un özyinelemeli bir seçeneği var.
Juanjo Salvador

7

Aşağıdaki komutla proje klasörünüze tüm izinleri vermeye çalışın

sudo chmod -R 777 /yourProjectDirectoryName

ile koş

sudo npm install lodash

Bu bir jr çözümü
Pablo Papalardo

777'ye bile ihtiyacınız olmayabilir. Benim için sorun sadece # 'lerin çok düşük olmasıydı. (775 düzeltti.)
Andrew

"Bir dosya veya dizine 777 izinlerinin ayarlanması, onun tüm kullanıcılar tarafından okunabilir, yazılabilir ve çalıştırılabilir olacağı anlamına gelir ve büyük bir güvenlik riski oluşturabilir." - linuxize.com/post/what-does-chmod-777-mean
MillerC

4

FWIW Aynı semptomlara sahiptim, ancak farklı bir paketle. Oluşturma package.jsonve koşma npm initvermedi DEĞİL sorunumu çözer.

Bu sistemde, görünüşe göre bu konumda yeni klasörler kök izinleriyle yaratılıyordu. Bu sırada npm installyeni klasörler oluşturulur. Bu, npm kurulumunun sudo ile bile kısmen başarısız olmasına neden oldu.

Çözüm, npm install appkök umask içermeyen farklı bir konumda çalışmaktı.


4

Bu sorunu npm dizinimin iznini değiştirerek çözdüm. Benim için npm global dizinine gittim.

/home/<user-name>

Bu komutu girerek bu dizine gittim

cd /home/<user-name>

ve sonra bu komutu girerek .npm klasörünün iznini değiştirdi.

sudo chmod -R 777 ".npm"

Benim için bir cazibe gibi çalıştı. Ancak bunda bir güvenlik açığı var, yani global paketler dizininiz tüm seviyeler tarafından erişilebilir durumda.


Neden tüm dünyanın bu özel klasöre erişmesine izin verdiniz?
egdavid

4

İlgili bir sorun:

Birkaç güne yayılan 3 saat boşa gitti.

Bir AWS EC2 makinesinde aşağıdakiler çalıştı:

sudo chown -R $(whoami) /home/ubuntu/.cache
sudo chown -R $(whoami) /home/ubuntu/.config
sudo chown -R $(whoami) /home/ubuntu/.local
sudo chown -R $(whoami) /home/ubuntu/.npm
sudo chown -R $(whoami) /home/ubuntu/.pm2

Umarım yardımcı olur.


3

LUBUNTU 19.10 / Çalışan aynı sorun: $ npm start

dökümü: Hata: EACCES: izin reddedildi, Object'te '/home/simon/xxx/pagebuilder/resources/scripts/registration/node_modules/.cache/@babel/register/.babel.7.4.0.development.json' açın. fs.openSync (fs.js: 646: 18), Object.fs.writeFileSync'de (fs.js: 1299: 33) kaydetmede (/ home / simon / xxx / pagebuilder / resources / scripts / registration / node_modules / @ babel / register / lib / cache.js: 52: 15) _combinedTickCallback'de (dahili / işlem / sonraki_tick.js: 132: 7) process._tickCallback'de (dahili / işlem / next_tick.js: 181: 9) Function.Module.runMain'de (module.js: 696: 11) Nesnede. (/home/simon/xxxx/pagebuilder/resources/scripts/registration/node_modules/@babel/node/lib/_babel-node.js:234:23) Module._compile'da (module.js: 653: 30) Object'te .Module._extensions..js (module.js: 664: 10) Module.load'da (module.js: 566: 32)

Görünüşe göre varsayılan kullanıcımın (yöneticimin) düğüm modülü dizinleri üzerinde hakları yok.

Bu benim için sorunu çözdü!

$ sudo chmod a+w node_modules -R ## from project root


2

İlk önce -g (global) olmadan kök üzerine kurun. -G (global) kullanmayı denedikten sonra benim için çalıştı.


Çalıştı !! Mac'te kod klasörümü kök klasörüme taşıdı: HardDrive / ve "npm install" kusursuz bir şekilde çalıştı. Daha sonra kod klasörümü HardDrive / users / myUserName / Projects / code içinde istediğim yere taşıdım, tekrar "npm install" çalıştırdım ve bu sefer çalıştı.
Josh

2

İşte GNU / Linux (Debian) için çözüm kullanıcıları (Değiştir var KULLANICI_ADI ile adınız ):

sudo chown -R $USER:$(id -gn $USER) /home/USERNAME/.config


2

Bunu kullanmayı deneyin: Komut satırında, ana dizininizde, genel kurulumlar için bir dizin oluşturun:

mkdir ~/.npm-global

Yeni dizin yolunu kullanmak için npm'yi yapılandırın:

npm config set prefix '~/.npm-global'

Tercih ettiğiniz metin düzenleyicide bir ~ / .profile dosyası açın veya oluşturun ve şu satırı ekleyin:

export PATH=~/.npm-global/bin:$PATH

Komut satırında, sistem değişkenlerinizi güncelleyin:

source ~/.profile

Sudo kullanmadan paketi global olarak yüklemeyi test edin, umarım yardımcı olur


0

Dist klasörünü kaldır ve bu benim sorunumu çöz!


0

Windows'ta, bağlantı noktasının zaten IIS tarafından kullanımda olduğu ortaya çıktı.

IIS'nin durdurulması (Sağ tıklama, Çıkış) sorunu çözdü.


0

Global node_modulesdizinin sahibini kullanıcınız olarak değiştirmeniz yeterlidir :

sudo chown -R $USER:$GROUP /usr/local/lib/node_modules

0

Bu önerilerin çoğunu denedim ama hiçbiri işe yaramadı. Sonra koştum npm clean-installve sorunlarımı çözdü.


0

node, aşağıdakilerin yürütülmesini önerir:

 sudo chown -R $USER:$(id -gn $USER) /home/venkatesh/.config

Eğer yürütürsen

npm config

Bunun gibi bir şey göreceksin

│                   npm update check failed                   │
│             Try running with sudo or get access             │
│            to the local update config store via             │
│ sudo chown -R $USER:$(id -gn $USER) /home/venkatesh/.config │

Benim için çalıştı.


0

şunu kullanarak bu klasöre yazma izni vermemiz gerekiyor:

sudo chmod 777 path-to-directory

bu projede dizine giden yol (/ home / ubuntu / blog / server)


0

Aşağıdaki gibi bir hata alıyorsanız

Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/<PackageName>/vendor'

Global paketinizi kurmak için aşağıdaki komutu kullanmanızı öneririm

sudo npm install -g <PackageName> --unsafe-perm=true --allow-root

-2

Bu komutları çalıştırın ve sorun çözülecektir!

sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib/node_modules

İçin /usr/localtüm subdirs ve izinler alınmalıdır rwxr-xr-xve kök ait. Sistemin kullanıcıları bu dizin yapısı içinde okuyabilir ve çalıştırabilir ancak düzenleyemez, dosya oluşturamaz. Bununla birlikte, cevabınız herkese izin vermenizi öneriyor. Ve neyin nasıl ve neyin etkileneceğini veya sorunun neden çözüleceğini açıklamadan.
Kuliraj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.