Bu, NodeJS'yi kurmanın harika (ama sinir bozucu) bir yoludur.
Eğer kaçarsan tar tf /usr/save/node-v4.2.1-linux-x64.tar.gz
dosyada, böyle bir şey görürsünüz:
node-v4.2.1-linux-x64/
node-v4.2.1-linux-x64/bin/
node-v4.2.1-linux-x64/bin/npm
node-v4.2.1-linux-x64/bin/node
node-v4.2.1-linux-x64/share/
node-v4.2.1-linux-x64/share/man/
node-v4.2.1-linux-x64/share/man/man1/
Temel olarak, bu katran arşivini ayıkladığınızda, node-v4.2.1-linux-x64
bu alt klasörlerin (ve düğüm kurulumunun) içinde adı verilen bir klasöre ayıklanacağı anlamına gelir . Aslında, daha iyi bir fikir edinmek için bu alıntıyı bile deneyebilirsiniz:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
Çalıştırırsanız ls
, bir node-v4.2.1-linux-x64
klasör görürsünüz .
Şimdi, --strip-components 1
çıkarma işlemi için ilginç bir şey yapıyor. Gönderen man tar
:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
Temel olarak, bu tar
, arşivinizi çıkaracağınız zaman, node-v4.2.1-linux-x64
klasörün orada olmadığı gibi davranacağını gösterir . Bunun yerine, bu özü gidiyor bin/
, share/
ve doğrudan tüm diğer klasörler.
Aslında, deneyebilirsiniz:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
Çalıştırırsanız ls
, artık bir node-v4.2.1-linux-x64
klasör olmadığını görürsünüz . Sadece oluyor bin/
, include/
, lib/
ve share/
(hepsi tesadüfen içinde klasörleri /usr/local/
).
İkinci komutunuz işe yaramaz çünkü node-v4.2.1-linux-x64
klasörü yeni çıkardı /usr/local
(eğer hiç çalıştırılsa bile). Çalıştırırsanız ls /usr/local
, bu klasörün takıldığını bile görebilirsiniz. İşe yaramaz, silmekten çekinmeyin rm
. Neden işe yaramazsa, okumaya devam et ...
Artık tar komutunun nasıl çalıştığını açıkladığımıza göre, bunun nasıl kurulduğunu açıklayabiliriz.
Her Linux sisteminde, $PATH
yürütülebilir dosyaların nerede depolanacağını belirleyen değişken adı verilen bir şey vardır. Bu yerler arasında /usr/local/bin
. İçerideki bu ikili dosyayı çıkardığınızda /usr/local
(yükleme talimatlarınızın söylediklerinden eminim), NodeJS ikili dosyası, /usr/local/bin/node
ayıklamaların nasıl yapıldığına göre yazılıyor . Benzer şekilde, tüm kütüphaneler yerel kütüphane klasörüne eklenir ve hemen hemen her şey ait olduğu yere gider.
Şimdi, uyarı (ve bunun neden sinir bozucu olduğu), olup apt
biteni görmeyecek veya anlamayacak veya fark etmeyecek olmasıdır. Güncelleme yoluyla sudo apt upgrade
veya benzeri bir şeyle güncellenemezsiniz . Manuel olarak girip eski NodeJS kurulumunu temizlemeniz ve yükseltmek istediğinizde yenisini koymanız gerekir.
Sadece koşmanı tavsiye ederim sudo apt install nodejs-legacy
. Daha az acı ve sizin için otomatik olarak güncellenir.
jodejs
aracılığıylaapt
komuta:sudo apt install nodejs nodejs-legacy
.