이것은 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