Saat memasang Node di mesin saya, saya menggunakan perintah di bawah ini yang saya temukan di situs web.
tar --strip-components 1 -xzf /usr/save/node-v4.2.1-linux-x64.tar.gz
Saya tahu itu tar -xzf
digunakan untuk mengekstrak arsip tetapi saya ingin tahu bagaimana simpul diinstal?
Saya mencoba menginstalnya dengan cara ini. Saya telah mengekstrak file simpul /usr/local
menggunakan perintah di bawah ini,
tar /usr/local -xzf /usr/save/node-v4.2.1-linux-x64.tar.gz
Tetapi ini tidak berhasil. Adakah yang bisa menjelaskan atau membantu saya memahami perbedaan antara kedua perintah ini?
Apa yang sedang dilakukan perintah 1 daripada yang dilakukan perintah 2?
software-installation
tar
prathapa reddy
sumber
sumber
jodejs
melaluiapt
perintah:sudo apt install nodejs nodejs-legacy
.Jawaban:
Struktur direktori tarball adalah seperti ini:
Saat Anda mengekstrak arsip ini tanpa opsi lain
/usr/local
, Anda mendapatkan ini:Jadi, direktori baru dibuat
/usr/local
, dan file-file dibuang di sana.Namun, dengan
--strip-components=1
, satu komponen direktori dari jalur yang diekstraksi dihapus, jadinode-v6.10.1-linux-x64/bin/
menjadibin/
dannode-v6.10.1-linux-x64/bin/npm
menjadibin/npm
:Dan
/usr/local/bin
sudah masukPATH
, jadi Anda tidak perlu melakukan apa pun untuk mengeksekusinpm
dannode
.sumber
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: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:Jika Anda menjalankan
ls
, Anda akan melihatnode-v4.2.1-linux-x64
folder.Sekarang,
--strip-components 1
lakukan sesuatu yang menarik untuk proses ekstraksi. Dariman tar
:Pada dasarnya, ini berarti bahwa ketika
tar
akan mengekstrak arsip Anda, itu akan berpura-pura seolahnode-v4.2.1-linux-x64
folder itu tidak ada. Sebaliknya, itu akan mengekstrakbin/
,share/
dan semua folder lainnya secara langsung.Bahkan, Anda bisa mencobanya:
Jika Anda menjalankan
ls
, Anda akan melihat tidak ada laginode-v4.2.1-linux-x64
folder. Hanya sajabin/
,include/
,lib/
, danshare/
(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 menjalankanls /usr/local
, Anda bahkan mungkin melihat folder ini berkeliaran. Tidak ada gunanya, jangan ragu untuk menghapusrm
. 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 melaluisudo 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.sumber