Ini semacam cara yang keren (namun menjengkelkan) untuk menginstal NodeJS.
Jika Anda menjalankan tar tf /usr/save/node-v4.2.1-linux-x64.tar.gz
file tersebut, Anda akan melihat sesuatu seperti ini:
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/
Pada dasarnya, ini berarti bahwa ketika Anda mengekstrak arsip tar ini, itu akan mengekstrak ke folder yang disebut node-v4.2.1-linux-x64
dengan semua subfolder ini (dan instalasi node) di dalamnya. Bahkan, Anda bahkan dapat mencoba ekstraksi ini untuk mendapatkan ide yang lebih baik:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
Jika Anda menjalankan ls
, Anda akan melihat node-v4.2.1-linux-x64
folder.
Sekarang, --strip-components 1
lakukan sesuatu yang menarik untuk proses ekstraksi. Dari man tar
:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
Pada dasarnya, ini berarti bahwa ketika tar
akan mengekstrak arsip Anda, itu akan berpura-pura seolah node-v4.2.1-linux-x64
folder itu tidak ada. Sebaliknya, itu akan mengekstrak bin/
, share/
dan semua folder lainnya secara langsung.
Bahkan, Anda bisa mencobanya:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
Jika Anda menjalankan ls
, Anda akan melihat tidak ada lagi node-v4.2.1-linux-x64
folder. Hanya saja bin/
, include/
, lib/
, dan share/
(semua kebetulan folder di /usr/local/
).
Perintah kedua Anda tidak akan berhasil karena hanya akan mengekstrak node-v4.2.1-linux-x64
folder ke /usr/local
(jika itu berjalan sama sekali). Jika Anda menjalankan ls /usr/local
, Anda bahkan mungkin melihat folder ini berkeliaran. Tidak ada gunanya, jangan ragu untuk menghapus rm
. Adapun mengapa itu tidak berguna, terus membaca ...
Sekarang kita telah menjelaskan bagaimana perintah tar bekerja, kita dapat menjelaskan bagaimana ini terinstal.
Setiap sistem Linux memiliki sesuatu yang disebut $PATH
variabel, yang menentukan di mana file yang dapat dieksekusi disimpan. Di antara tempat-tempat ini adalah /usr/local/bin
. Ketika Anda mengekstrak biner di dalamnya /usr/local
(yang saya yakin adalah apa yang dikatakan oleh instruksi pemasangan Anda), biner NodeJS sedang ditulis /usr/local/bin/node
sesuai dengan bagaimana ekstraksi dilakukan. Demikian pula, semua perpustakaan sedang ditambahkan ke folder perpustakaan lokal dan semuanya berjalan di tempatnya.
Sekarang, peringatannya (dan mengapa ini menjengkelkan) adalah apt
tidak akan melihat atau memahami atau menyadari apa yang sedang terjadi. Anda tidak akan dapat memperbaruinya melalui sudo apt upgrade
atau serupa. Anda harus masuk dan membersihkan instalasi NodeJS yang lama secara manual dan kemudian memasang yang baru jika Anda ingin memutakhirkan.
Saya akan merekomendasikan Anda hanya menjalankan sudo apt install nodejs-legacy
saja. Lebih sedikit rasa sakit, dan secara otomatis memperbarui untuk Anda.
jodejs
melaluiapt
perintah:sudo apt install nodejs nodejs-legacy
.