- Get link
- X
- Other Apps
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.
Bunun birçok sebebi olmakla beraber, en temel sebebi Node ya da npm klasötrlerinin PATH kayıtlarının olmamasıdır. Ya da Node.js'in yanlış yüklenmesidir.
Güncelleme
Bu hatadan önce ya da yanlış yüklemelerde, EACCES hatası da çokça alınır. Çözümü:
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:
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:
Not: npm'in global prefixini bulmak için:
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.
Hatalı olan yöntem:
Yükleme:
Bash:
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 testiBash:
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.Bash:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profileAncak 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:
Bash:
export PATH=$PATH:~/.npm-global/binFakat 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:
Bash:
export PATH=$PATH:~/.npm-global/bin
export PATHNot: npm'in global prefixini bulmak için:
Bash:
npm config get prefixLinux 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.
- Get link
- X
- Other Apps
Comments
Post a Comment