Làm cách nào để cài đặt NodeJS mới nhất trên Debian Jessie?


29

Tôi vừa cài đặt NodeJS & NPM trên Debian Jessie bằng cách sử dụng phương pháp được đề xuất:

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

Tuy nhiên, đây là phiên bản khá cũ (nút v0.10,38 & npm 1.4.28).

Bất kỳ đề xuất nào về cách dễ nhất để cài đặt các phiên bản mới hơn, ví dụ: nút hiện tại là v0.12.4 và npm là 2.7.4? Là cài đặt từ nguồn tiếp cận duy nhất của tôi?

Câu trả lời:


48

Có một tập lệnh thiết lập có sẵn cho Node.js (xem phần cài đặt ):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

Một nhận xét nhỏ: Theo ý kiến ​​khiêm tốn của tôi, đó là một ý tưởng rất tồi curl | sudo bash. Bạn đang chạy một tập lệnh mà bạn không kiểm tra với quyền root. Luôn luôn tốt hơn để tải xuống tập lệnh, đọc qua nó, kiểm tra các lệnh độc hại và sau đó , chạy nó. Nhưng đó chỉ là hai xu của tôi.

Việc cài đặt có thể đạt được bằng tay trong một vài bước sau quy trình cài đặt thủ công :

  • Loại bỏ PPA cũ (nếu có)
  • Thêm khóa ssh nút repo
  • Thêm repo nút vào sources.list
  • cập nhật danh sách gói và cài đặt bằng công cụ apt yêu thích

5
ops, sử dụng nó, nhưng bây giờ có setup_4.x... làm lại curl và apt-get ok?
Peter Krauss

3
Vì bạn có thể cần phiên bản mới nhất, thực tế, tôi khuyên bạn nên truy cập trang web của họ: github.com/nodesource/distribution .
Seniorpreacher

Tại sao bạn không tin tưởng nó nếu nó đi qua một kết nối an toàn từ cùng một nguồn bạn đang chạy nhị phân từ

@ acidzombie24 đúng, nhưng ngay cả khi bạn tin tưởng mã không phải là xấu, vẫn luôn có khả năng xảy ra lỗi trong tập lệnh hoặc tập lệnh lỗi thời hoặc cấu hình của bạn hơi kỳ lạ. Hoặc có thể bạn muốn đặt hàng nguồn của mình. Liệt kê một số cách và các kịch bản làm khác. Dù sao, tôi cũng nghĩ rằng đó là thực tế tồi tệ và người mới bắt đầu (tôi không nhắm vào OP nhưng nói chung) không nên được khuyến khích để làm điều đó. Đặc biệt là khi thực hiện hành động bằng tay đơn giản hơn nhiều so với việc kiểm tra kịch bản.
Jérôme

12

Bạn có thể tải xuống phiên bản mới nhất của Node ( 4.2.2) từ trang web của họ , thay vì sử dụng gói Debian cung cấp ( 0.12). Điều này cũng có nghĩa là bạn có phiên bản cập nhật của npm. Tôi không có bất kỳ vấn đề gì khi làm điều này trên Jessie.

Tải xuống .tar.gztừ trang web của họ và cdvào thư mục đó (tên của tệp rõ ràng là cụ thể cho tải xuống của tôi):

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64

Nếu bạn có một cái nhìn trong thư mục bin, bạn sẽ thấy các nhị phân bạn cần cho nút và npm:

$ ls node-v4.2.2-linux-x64/bin 
node  npm

Bây giờ tôi sẽ đổi tên thư mục thành một cái gì đó dễ dàng hơn để theo dõi

$ mv node-v4.2.2-linux-x64 nodejs

Nếu bạn không quan tâm đến việc giữ nút cập nhật, thì chỉ cần di chuyển thư mục này vào một trong các vị trí bin của bạn (tôi sử dụng ~/bin) và bỏ qua bước tiếp theo.

Nếu bạn muốn có thể dễ dàng cập nhật phiên bản nút của mình, sau đó di chuyển nodejsthư mục đến một nơi nào đó bạn có thể theo dõi nó ( ~/nodejscó lẽ?). Sau đó, bạn muốn tạo một liên kết tượng trưng đến một trong các vị trí bin của bạn để các nhị phân có thể được sử dụng từ trình bao của bạn mà không cần viết ra đường dẫn đầy đủ.

Giả sử bạn đặt thư mục nodejs trong thư mục chính của bạn, bây giờ bạn có thể làm:

$ ln -s ~/nodejs ~/bin/nodejs

Rõ ràng, điều này có thể đi đến bất kỳ vị trí bin bạn muốn. Tôi đã sử dụng thư mục nhà của tôi để nó chỉ có sẵn cho tôi, nhưng bạn cũng có thể dễ dàng làm:

$ ln -s ~/nodejs /usr/local/bin/nodejs

Điều này sẽ tạo một liên kết tượng trưng từ thư mục nodejs trong thư mục chính của bạn đến thư mục bin (có nghĩa là mọi cập nhật cho thư mục trong thư mục nhà của bạn được phản ánh trong thư mục ở nơi khác thông qua liên kết tượng trưng ). Bây giờ bạn muốn đảm bảo rằng thư mục bin chứa thư mục nodejs nằm trong $PATHbiến môi trường của bạn , vì vậy hãy mở ~/.profiletệp trong thư mục chính của bạn. Bạn muốn thêm phần này vào cuối tệp đó (thay đổi đường dẫn, nếu bạn không sử dụng ~/bin/):

# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi

Điều này sẽ kiểm tra xem thư mục có tồn tại hay không, và nếu có, hãy thêm nó vào PATH của bạn. Tôi sử dụng zshvì vậy tôi chỉ cập nhật một dòng trong ~/.zshrc:

export PATH="$HOME/bin/nodejs/bin:$PATH"

Đóng thiết bị đầu cuối của bạn và mở lại, sau đó gõ như sau để kiểm tra:

$ node -v
v4.2.2

$ npm -v
2.14.7

Bằng cách tạo liên kết sym, giờ đây có nghĩa là trong tương lai, bạn có thể tải xuống một bản mới .tar.gztừ trang web của Nodejs, trích xuất nó ~/nodejsvà các tệp nhị phân có sẵn cho bạn trong $PATH biến môi trường của bạn sẽ được cập nhật tự động.


Cái này làm việc cho tôi vì nó cũng cho một npm làm việc.
artfulrobot

4

trong trường hợp của tôi, tôi đã thực thi các lệnh shell được đề xuất:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

vấn đề là tập lệnh bash không cập nhật ghim APT của tôi để apt-get cài đặt gói Debian cũ, mặc định từ nguồn debian.org chứ không phải từ nútource.com

xác minh đây là vấn đề với apt-cache policy nodejs. bạn sẽ thấy một cái gì đó giống như Candidate: 6.10.2-1nodesource1~jessie1và khôngCandidate: 0.10.29~dfsg-2

để đặt mức độ ưu tiên cho mã nguồn, thêm một tệp /etc/apt/preferences.d/được gọi nodehoặc bất cứ thứ gì có nội dung này:

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

tiết kiệm và chạy apt-get cache update. sau đó thử apt-cache policy nodejslại Nếu ứng viên có vẻ đúng, hãy cài đặt như bình thườngapt-get install nodejs


apt-get cache updatetrở về E: Invalid operation cachenên tôi chạy sudo aptitude update.
dùng394

2

Bạn có thể làm theo tài liệu chính thức của node.js để cài đặt phiên bản mới nhất với trình quản lý gói.

Node.js v6:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Node.js v7:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

Chạy cái sau, nút v7.5.0 và npm v4.1.2 đã được cài đặt trên hệ thống của tôi. Cả hai nodenodejsbí danh đã được bật cho Node tự động.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.