Ubuntu dağıtımlarından birine Node.js yükledikten sonra, npm ile yapılan -g (global) yüklemelerde, yükleme sonrası çağırmalarda “command not found” hatası alabilirsiniz.
sudo apt update
sudo apt install nodejs
sudo apt install npm # Node.js ile beraber NPM gelmektedir, ama inmezse bu kod kullanılabilir
nodejs -v # Node.js versiyon testi
Güncelleme
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
sudo n latest
#Yeni PATH'i düzeltmek için.
sudo apt-get install --reinstall nodejs-legacy # /usr/bin/node -> /usr/locale/bin/node
#Yeni Node'u kullanmak için Terminal'i açıp kapatmanız gereklidir.
Bu hatadan önce ya da yanlış yüklemelerde, EACCES hatası da çokça alınır. Çözümü:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
Ancak EACCES hatası çözümü sonrası başka bir hata daha çıkar. npm için “npm-global” yolunu oluşturduktan sonra, bu hata ile karşılaşma ihtimaliniz çok yüksek.
Çözüm ise PATH’e “~/.npm-global/bin” eklemek:
export PATH=$PATH:~/.npm-global/bin
Fakat export komutunu her terminal açtığınızda girmeniz gerekecek. Çünkü PATH’te yaptığınız değişiklikler resetleniyor olacak. Bu durumdan kurtulmanın yolu da çok kolay.
“gedit ~/.bashrc” ile bashrc’yi açın, en alt satıra gidin ve bir önceki kodu ekleyin:
export PATH=$PATH:~/.npm-global/bin
export PATH
Not: npm’in global prefixini bulmak için:
npm config get prefix
Linux ve Node.js kullanmak çok çok karmaşık. Ek olarak, npm ile yükleme yaparken sakın sudo kullanmayın yoksa boyuna erişim hatası alırsınız. npm ile global yüklemeleri Sudo ile yapmak zorunda kalıyorsanız, Node.js ya da npm yanlış yüklenmiş demektir.
Ayrıca, Node.js’i PPA ile değil, apt ile indirip kurun. Sonrasında güncelleme yapın. PPA ile kurulan sürümlerde, PATH ve izin hataları nedense çok oluyor.
Son olarak, Node.js kütüphaneleriyle Linux dağıtımlarında uğraşmak oldukça zor. Dolayısıyla ne yaptığınıza dikkat edin. 2 kez format atma noktasına geldim zira Node.js yayılabiliyor ve temizlemesi resmen çile.
Aman dikkat.