Đây là một cách hay để cài đặt NodeJS.
Nếu bạn chạy tar tf /usr/save/node-v4.2.1-linux-x64.tar.gz
trên tệp, bạn sẽ thấy một cái gì đó như thế này:
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/
Về cơ bản, điều này có nghĩa là khi bạn trích xuất kho lưu trữ tar này, nó sẽ trích xuất vào một thư mục được gọi node-v4.2.1-linux-x64
với tất cả các thư mục con này (và cài đặt nút) bên trong nó. Trên thực tế, bạn thậm chí có thể thử trích xuất này để có ý tưởng tốt hơn:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
Nếu bạn chạy ls
, bạn sẽ thấy một node-v4.2.1-linux-x64
thư mục.
Bây giờ, --strip-components 1
làm một cái gì đó thú vị cho quá trình khai thác. Từ man tar
:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
Về cơ bản, điều này có nghĩa là khi tar
trích xuất kho lưu trữ của bạn, nó sẽ giả vờ như node-v4.2.1-linux-x64
thư mục không có ở đó. Thay vào đó, nó sẽ giải nén bin/
, share/
và tất cả các thư mục khác trực tiếp.
Trong thực tế, bạn có thể thử nó:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
Nếu bạn chạy ls
, bạn sẽ thấy không còn node-v4.2.1-linux-x64
thư mục. Nó chỉ bin/
, include/
, lib/
, và share/
(tất cả tình cờ thư mục trong /usr/local/
).
Lệnh thứ hai của bạn sẽ không hoạt động vì nó sẽ chỉ trích xuất node-v4.2.1-linux-x64
thư mục /usr/local
(nếu nó thậm chí còn chạy). Nếu bạn chạy ls /usr/local
, bạn thậm chí có thể thấy thư mục này treo xung quanh. Thật vô dụng, cứ thoải mái xóa đi rm
. Về việc tại sao nó vô dụng, hãy tiếp tục đọc ...
Bây giờ chúng tôi đã giải thích cách hoạt động của lệnh tar, chúng tôi có thể giải thích cách cài đặt này.
Mọi hệ thống Linux đều có một thứ gọi là $PATH
biến, xác định nơi lưu trữ các tệp thực thi. Trong số những nơi này là /usr/local/bin
. Khi bạn trích xuất nhị phân đó bên trong /usr/local
(mà tôi tự tin là những gì hướng dẫn cài đặt của bạn nói), nhị phân NodeJS sẽ được ghi /usr/local/bin/node
theo cách trích xuất được thực hiện. Tương tự, tất cả các thư viện đang được thêm vào thư mục thư viện cục bộ và mọi thứ gần như chỉ thuộc về nơi nó thuộc về.
Bây giờ, cảnh báo (và tại sao điều này gây phiền nhiễu) là apt
sẽ không nhìn thấy hoặc hiểu hoặc không nhận ra điều gì đang xảy ra. Bạn sẽ không thể cập nhật thông qua sudo apt upgrade
hoặc tương tự. Bạn cần phải tự đi vào và dọn dẹp cài đặt NodeJS cũ và sau đó cài đặt cái mới trong trường hợp bạn muốn nâng cấp.
Tôi muốn khuyên bạn chỉ nên chạy sudo apt install nodejs-legacy
thay thế. Ít đau hơn, và nó tự động cập nhật cho bạn.
jodejs
thông quaapt
lệnh :sudo apt install nodejs nodejs-legacy
.