Đâ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.gztrê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-x64vớ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-x64thư mục.
Bây giờ, --strip-components 1là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 tartrích xuất kho lưu trữ của bạn, nó sẽ giả vờ như node-v4.2.1-linux-x64thư 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-x64thư 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-x64thư 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à $PATHbiế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/nodetheo 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à aptsẽ 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 upgradehoặ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-legacythay thế. Ít đau hơn, và nó tự động cập nhật cho bạn.
jodejsthông quaaptlệnh :sudo apt install nodejs nodejs-legacy.