Це свого роду класний (але дратує) спосіб встановлення NodeJS.
Якщо ви запустите tar tf /usr/save/node-v4.2.1-linux-x64.tar.gzфайл, ви побачите щось подібне:
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/
В основному це означає, що при витягуванні цього архіву tar, він буде витягнутий у папку, яку називають node-v4.2.1-linux-x64усіма цими підпапками (та встановленням вузла) всередині неї. Насправді ви навіть можете спробувати цю видобуток, щоб отримати краще уявлення:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
Якщо ви запустите ls, ви побачите node-v4.2.1-linux-x64папку.
Тепер --strip-components 1чи щось цікаве в процесі видобутку. Від man tar:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
В основному, це означає, що коли tarвитягуватимете свій архів, він буде робити вигляд, що node-v4.2.1-linux-x64папки там немає. Замість цього він збирається екстракт bin/, share/а всі інші папок безпосередньо.
Насправді ви можете спробувати:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
Якщо ви запустите ls, ви побачите, що більше немає node-v4.2.1-linux-x64папки. Це просто bin/, include/, lib/і share/(все папки по збігу в /usr/local/).
Ваша друга команда не працювала б, оскільки вона просто витягла node-v4.2.1-linux-x64папку /usr/local(якщо вона взагалі запущена). Якщо ви запустите ls /usr/local, ви навіть можете побачити, що ця папка висить навколо. Це марно, сміливо видаляйте rm. Щодо того, чому це марно, продовжуйте читати ...
Тепер, коли ми пояснили, як працює команда tar, ми можемо пояснити, як це встановлюється.
Кожна система Linux має назву $PATHзмінної, яка визначає, де зберігаються виконувані файли. Серед цих місць є /usr/local/bin. Коли ви виймаєте цей двійковий файл всередині /usr/local(про що я впевнений - це кажуть ваші інструкції щодо встановлення), у бінарний файл NodeJS записується відповідно до того /usr/local/bin/node, як робляться вилучення. Так само всі бібліотеки додаються до папки локальної бібліотеки, і все майже просто йде туди, куди належить.
Тепер застереження (і чому це дратує) - це те apt, що не побачить і не зрозуміє і не зрозуміє, що відбувається. Ви не зможете оновити його через sudo apt upgradeабо подібне. Вам потрібно буде вручну зайти та очистити стару установку NodeJS, а потім поставити нову, якщо ви хочете оновити.
Я б рекомендував вам просто бігти sudo apt install nodejs-legacyзамість цього. Менше болю, і він автоматично оновлюється для вас.
jodejsдопомогоюaptкоманди:sudo apt install nodejs nodejs-legacy.