npm EACCES: permission denied Hatası Nasıl Çözülür? (How to Fix npm Permission Error)

16.04.2026 23:37 Haber
npm EACCES: permission denied Hatası Nasıl Çözülür? | Fix npm Permission Error | Alesta Web

npm ile global paket kurmaya çalışırken "EACCES: permission denied" hatası mı alıyorsunuz? Program açılmıyor, kurulum yarıda mı kalıyor? Hiç panik yapmayın! Alesta Web olarak bu npm permission denied hatasını 3 farklı yöntemle nasıl çözeceğinizi adım adım anlatacağız. Hem Linux hem macOS kullanıcıları için geçerli olan bu rehber, npm EACCES error sorununu kalıcı olarak çözer.

npm EACCES Hatası Nedir? (What is npm EACCES Permission Denied Error?)

Bu hatayı genellikle şu komutla karşılaşırsınız:

Hata Mesajı / Error Message

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! errno: -13
npm ERR! syscall: access
npm ERR! path: '/usr/local/lib/node_modules'
npm ERR! A complete log of this run can be found in: /home/kullanici/.npm/_logs/

EACCES = "Error Access" yani Erişim Hatası demektir. npm, global paketleri /usr/local/lib/node_modules dizinine kurmaya çalışır. Ancak bu dizin varsayılan olarak root kullanıcısına aittir. Normal kullanıcı hesabınızın bu dizine yazma izni (write permission) olmadığı için npm permission denied hatası verir.

? Bilgi / Info:

Alesta Web ekibi olarak bu hatayı yüzlerce kullanıcıda gördük. En yaygın sebebi: Node.js'i doğrudan sistemin paket yöneticisiyle (apt, yum, brew) kurmak. Bu yöntem, npm'in sistem dizinlerine yazmasını zorlaştırır (forces npm to write to system directories).

Yöntem 1: NVM Kullanımı (Recommended Method - En Güvenli)

Alesta Web olarak her zaman bu yöntemi öneriyoruz. NVM (Node Version Manager), Node.js ve npm'i kendi ev dizininize kurar. Sistem dizinlerine hiç dokunmaz, bu yüzden npm EACCES permission error bir daha yaşanmaz.

Dahası, NVM ile birden fazla Node.js sürümünü kolayca yönetebilirsiniz. Bir projede Node 18, başka bir projede Node 22 kullanmak artık çok basit.

Adım 1: NVM Kurulumu (Linux ve macOS)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
⚠️ Dikkat / Warning:

Kurulumdan sonra terminali kapatıp yeniden açın! Yoksa nvm: command not found hatası alırsınız. Terminali yeniden açmak (reopen terminal), NVM'in PATH değişkenini yüklemesi için şarttır.

Adım 2: Node.js Kurulumu

# En son LTS sürümü kur
nvm install 22

# Kullanmak istediğin sürümü seç
nvm use 22

# Varsayılan olarak ayarla
nvm alias default 22

# Doğrulama
node --version
npm --version

Windows için NVM (nvm-windows)

# github.com/coreybutler/nvm-windows adresinden installer indirin
# .exe dosyasını çalıştırın ve adımları izleyin

nvm install 22.0.0
nvm use 22.0.0
✅ Başarılı / Success:

NVM kurulumu tamamlandıktan sonra npm install -g typescript komutunu deneyin. Artık npm EACCES hatası (permission denied error) almayacaksınız!

Yöntem 2: npm Prefix Değiştirme (Change npm Prefix Directory)

NVM kullanmak istemiyorsanız, npm'i ev dizininizde çalışacak şekilde ayarlayabilirsiniz. Bu yöntem de npm permission denied sorununu kalıcı olarak çözer.

Adım Adım Kurulum

# 1. Global paketler için ev dizininde klasör oluştur
mkdir -p ~/.npm-global

# 2. npm'i bu dizini kullanacak şekilde ayarla
npm config set prefix '~/.npm-global'

# 3. PATH'e ekle (Bash kullananlar için - Linux)
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 4. PATH'e ekle (Zsh kullananlar için - macOS)
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrc

# 5. Ayarları doğrula
npm config get prefix
# Çıktı: /home/kullaniciadi/.npm-global

Test Et

# Global paket kur - artık hata yok!
npm install -g yarn

# Kurulumu doğrula
yarn --version
? Alesta Web İpucu:

Bu yöntemi uyguladıktan sonra terminal penceresini kapatıp yeniden açmayı unutmayın. PATH değişkeni (environment variable) yeni terminal oturumunda otomatik yüklenir.

Yöntem 3: chown ile Dizin Sahipliğini Değiştirme (Fix Directory Ownership)

Mevcut npm kurulumunuzun izinlerini (permissions) düzeltmek istiyorsanız, chown komutu işinizi görür. Bu yöntem, npm'in sistem dizinlerine erişim hakkını mevcut kullanıcınıza verir.

Tek Komutla Çözüm (Quick Fix)

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Bu komut ne yapıyor? $(whoami) mevcut kullanıcı adınızı otomatik alır. npm config get prefix npm'in global dizinini bulur. chown -R ise bu dizinlerin sahipliğini (ownership) size verir.

Ek Komutlar (Additional Commands)

# npm cache dizin izinlerini de düzelt
sudo chown -R $(whoami) ~/.npm

# Cache'i temizle
npm cache clean --force

# Test et
npm install -g nodemon
⚠️ Dikkat / Warning:

chown komutu sudo gerektiriyor. Çalıştırmadan önce sistem yöneticinize danışın. Kurumsal ortamlarda (enterprise environments) bu komutun çalıştırılması kısıtlı olabilir.

Neden "sudo npm install" Kullanmamalısınız? (Why Avoid sudo npm install?)

Birçok kullanıcı "neden sudo kullanmıyorum?" diye düşünüyor. Cevap çok basit: güvenlik riski.

Alesta Web olarak bu konuda net bir pozisyonumuz var: sudo npm install asla kullanmayın. İşte sebebi:

❌ KÖTÜ (Asla Yapma) / BAD (Never Do This)

sudo npm install -g express   # TEHLİKELİ!

✅ İYİ (Her Zaman Bunu Yap) / GOOD (Always Do This)

npm install -g express   # Güvenli - NVM veya prefix yöntemiyle

Tehlike Neden Büyük?

  • ❌ npm paketleri, kurulum sırasında postinstall scriptleri çalıştırır
  • sudo ile kurarsanız, bu scriptler root yetkileriyle çalışır
  • ❌ Kötü niyetli bir paket (malicious package) tüm sisteminize erişim sağlayabilir
  • ❌ Supply chain attack (tedarik zinciri saldırısı) riski katlanarak artar
? Bilgi / Info:

npm'in resmi dokümantasyonu (official documentation) açıkça şunu söylüyor: "Never run npm with sudo." Bu kural küçük projeler için de geçerli. Güvenliğinizi riske atmayın.

Hangi Yöntem Sizin İçin Doğru? (Which Method is Right for You?)

Yöntem / Method Zorluk / Difficulty Güvenlik / Security Öneri / Recommendation
NVM Kolay Mükemmel ⭐⭐⭐⭐⭐
npm Prefix Orta Çok İyi ⭐⭐⭐⭐
chown Kolay İyi ⭐⭐⭐
sudo npm Çok Kolay TEHLİKELİ ❌ KULLANMA

? Kaynaklar ve Referanslar / Sources and References

Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan alınmıştır (information from reliable sources):

Alesta Web olarak tüm bilgileri doğruladık ve test ettik (we verified and tested all information).

✅ npm EACCES Hatası Çözüldü! (npm Permission Error Fixed!)

Artık npm EACCES permission denied hatası (npm global install permission error) geride kaldı. Alesta Web olarak öncelikli önerimiz her zaman NVM yöntemidir — hem güvenli hem de esnek bir çözüm sunar.

Hızlı Özet / Quick Summary:

  • ✅ NVM kurularak Node.js ev dizinine taşındı (NVM installed, Node.js moved to home directory)
  • ✅ Sistem dizinlerine dokunulmadı (No system directories modified)
  • ✅ npm global paket kurulumu artık sorunsuz (npm global install now works fine)
  • ✅ sudo npm install riski ortadan kalktı (sudo npm install risk eliminated)

Faydalı Linkler / Useful Links:

© 2026 AlestaWeb - Tüm hakları saklıdır.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç
Alesta AI
Alesta AI
Online