Ini semacam cara yang keren (namun menjengkelkan) untuk menginstal NodeJS.
Jika Anda menjalankan tar tf /usr/save/node-v4.2.1-linux-x64.tar.gzfile 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-x64dengan 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-x64folder.
Sekarang, --strip-components 1lakukan 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 tarakan mengekstrak arsip Anda, itu akan berpura-pura seolah node-v4.2.1-linux-x64folder 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-x64folder. 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-x64folder 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 $PATHvariabel, 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/nodesesuai 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 apttidak akan melihat atau memahami atau menyadari apa yang sedang terjadi. Anda tidak akan dapat memperbaruinya melalui sudo apt upgradeatau 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-legacysaja. Lebih sedikit rasa sakit, dan secara otomatis memperbarui untuk Anda.
jodejsmelaluiaptperintah:sudo apt install nodejs nodejs-legacy.