Root Olmadan NPM Kullanmak (Ubuntu 18.04)

Gökhan Gerdan
2 min readMay 24, 2019

Bu yazıda sudo komutunu kullanmadan npm ile çalışmak için yapılması gereken konfigürasyonları anlatacağım. Ben bu işlemleri ubuntu 18.04 ile test ettim.

sudo npm install -g create-react-app

Eğer npm komutunu yukarıdaki gibi başında sudo ile kullanmadığınızda izin hatası (Permission Error) alıyorsanız. Sudo kullanmak zorunda kalıyorsunuzdur. Bunun sonucunda da mesela;

sudo npx create-react-app hello-world

Komutuyla bir react uygulaması oluşturmak istediğinizde bu uygulama dizini ve uygulama dizini içerisindeki bazı dizin ve dosyalara da yalnızca root olarak düzenleme izniniz olduğunu farkedeceksiniz. Eğer bu durum sizi de rahatsız ediyorsa aşağıdaki adımları takip ederek normalde kullandığınız kullanıcıya gerekli izinleri vererek npm kullanmak için root olmanıza gerek kalmaz.

Öncelikle aşağıdaki komut ile şu an globalde yüklü paketlerinizin listesini görüntüleyin ve bir yere not alın ki tekrar yükleyebilesiniz:

npm list -g --depth=0

npm paketlerinizin nerede saklandığını görmek istiyorsanız aşağıdaki komut ile görüntüleyebilirsiniz:

npm config get prefix

İlk olarak aşağıdaki komut ile npm paketlerinizin yükleneceği yeri home dizinini yapalım:

npm config set prefix ~/npm

Şimdi de bashrc dosyasını açıp npm paketlerinin yükleneceği yeni yolu girelim:

nano ~/.bashrc

.bashrc dosyası içierisine aşağıdaki satırları eklemeniz yeterli:

export PATH="$PATH:$HOME/npm/bin"
export NODE_PATH="$NODE_PATH:$HOME/npm/lib/node_modules"

Dosyayı kaydedip çıktıktan sonra aşağıdaki komut ile değişiklikleri aktifleştirelim (En baştaki noktayı unutmayın!!!):

. ~/.bashrc

npm dizini içerisindeki dosyaların hangi kullanıcılara ait olduğunu aşağıdaki komut ile görüntüleyebilirsiniz.

ls -la ~/.npm

home içerisine aldığımız npm dizini ve içerisindeki herşeyin düzenleme iznini kullandığınız kullanıcıya vermek için aşağıdaki komutu çalıştırın:

sudo chown -R $USER:`id -g -n $USER` ~/.npm

Herşey hazır artık npm kullanırken root olmanıza yani başına sudo eklemenize gerek kalmayacak. Umarım işinize yaramıştır. Artık en başta not aldığınız global paketlerinizi tekrar yükleyebilirsiniz. Ama artık sudo komutunu kullanmanıza gerek yok.

Diğer blog yazılarıma da göz atabilirsiniz:

--

--