Kiến thức Hữu ích 😍

Cài đặt Node.js trên Ubuntu 20.04 | Hướng Dẫn Chi Tiết & Mẹo Quản Lý Phiên Bản


Node.js đã trở thành một nền tảng không thể thiếu cho các lập trình viên hiện đại, đặc biệt là trong thế giới phát triển web. Đây là một môi trường thực thi JavaScript phía máy chủ, được xây dựng trên công cụ V8 JavaScript của Chrome. Sức mạnh của Node.js nằm ở mô hình I/O không chặn (non-blocking I/O), giúp xử lý hàng nghìn kết nối đồng thời một cách hiệu quả. Điều này làm cho nó trở thành lựa chọn lý tưởng để xây dựng các ứng dụng web thời gian thực, API, microservices và nhiều hơn nữa. Vậy tại sao việc cài đặt Node.js đúng cách trên Ubuntu 20.04 lại quan trọng đến vậy? Một môi trường được thiết lập chuẩn xác không chỉ đảm bảo ứng dụng hoạt động ổn định mà còn giúp bạn quản lý các phiên bản và phụ thuộc một cách dễ dàng, tránh được những xung đột không đáng có trong tương lai. Bài viết này sẽ cung cấp một cái nhìn tổng quan về các phương pháp cài đặt phổ biến như sử dụng apt, NVM, hay cài đặt thủ công, giúp bạn lựa chọn giải pháp phù hợp nhất với nhuoveà nhu cầu của mình. Chúng ta sẽ cùng nhau đi qua từng bước, từ chuẩn bị hệ thống, hướng dẫn chi tiết, xử lý lỗi, và khám phá những lời khuyên tối ưu nhất.

Yêu cầu hệ thống và chuẩn bị môi trường Ubuntu 20.04

Trước khi bắt đầu cài đặt Node.js, việc chuẩn bị một môi trường sạch và đáp ứng đủ yêu cầu là bước đầu tiên và quan trọng nhất. Điều này đảm bảo quá trình cài đặt diễn ra suôn sẻ và hệ thống của bạn hoạt động ổn định sau này.

Yêu cầu phần cứng và phần mềm tối thiểu

Để chạy Node.js trên Ubuntu 20.04, bạn không cần một cấu hình phần cứng quá cao. Tuy nhiên, để đảm bảo hiệu suất tốt cho các ứng dụng từ nhỏ đến trung bình, bạn nên đáp ứng các yêu cầu tối thiểu sau:

  • Hệ điều hành: Ubuntu 20.04 LTS (Focal Fossa).
  • CPU: 1 GHz hoặc nhanh hơn.
  • RAM: Tối thiểu 1 GB. Đối với các ứng dụng lớn hoặc môi trường phát triển, 2 GB trở lên được khuyến nghị. Tìm hiểu thêm về RAM là gìDDR4 là gì.
  • Dung lượng ổ cứng: Ít nhất 10 GB dung lượng trống để chứa hệ điều hành, Node.js, và các gói phụ thuộc.

Về cơ bản, bất kỳ máy chủ VPS hoặc máy tính cá nhân nào được cài đặt Ubuntu 20.04 gần đây đều có thể đáp ứng tốt các yêu cầu này.

Hình minh họa

Cập nhật hệ thống và kiểm tra quyền truy cập sudo

Một trong những bước chuẩn bị quan trọng nhất là cập nhật hệ thống của bạn. Việc này giúp đảm bảo tất cả các gói phần mềm hiện có đều ở phiên bản mới nhất, vá các lỗ hổng bảo mật và giải quyết các vấn đề tương thích. Bạn cần có quyền truy cập sudo để thực hiện các lệnh quản trị hệ thống. Hãy mở terminal và chạy các lệnh sau: Đầu tiên, cập nhật danh sách gói của hệ thống: sudo apt update Tiếp theo, nâng cấp các gói đã cài đặt lên phiên bản mới nhất: sudo apt upgrade -y Lệnh này sẽ tải về và cài đặt các bản cập nhật. Quá trình này có thể mất vài phút tùy thuộc vào số lượng gói cần nâng cấp và tốc độ mạng của bạn. Sau khi hoàn tất, hệ thống của bạn đã sẵn sàng cho việc cài đặt Node.js.

Các phương pháp cài đặt Node.js trên Ubuntu 20.04

Có nhiều cách để cài đặt Node.js trên Ubuntu, mỗi phương pháp đều có ưu và nhược điểm riêng. Việc lựa chọn cách tiếp cận phù hợp phụ thuộc vào nhu cầu cụ thể của bạn: bạn cần sự đơn giản, sự linh hoạt hay sự kiểm soát tuyệt đối?

Hình minh họa

Cài đặt qua apt – cách truyền thống và nhanh chóng

Đây là phương pháp đơn giản và thẳng thắn nhất. Trình quản lý gói apt của Ubuntu cho phép bạn cài đặt Node.js trực tiếp từ kho lưu trữ mặc định của hệ điều hành. Ưu điểm lớn nhất của cách này là tốc độ và sự tiện lợi. Chỉ với vài dòng lệnh, bạn đã có ngay một môi trường Node.js để sử dụng. Tuy nhiên, nhược điểm của nó là phiên bản Node.js trong kho lưu trữ mặc định thường không phải là phiên bản mới nhất. Nếu dự án của bạn không yêu cầu các tính năng tân tiến nhất và bạn chỉ cần một môi trường để chạy các script đơn giản, đây là một lựa chọn tuyệt vời.

Sử dụng Node Version Manager (NVM) để quản lý phiên bản linh hoạt

Nếu bạn là một lập trình viên chuyên nghiệp hoặc làm việc trên nhiều dự án cùng lúc, NVM (Node Version Manager) là công cụ không thể thiếu. NVM cho phép bạn cài đặt và quản lý nhiều phiên bản Node.js khác nhau trên cùng một máy. Bạn có thể dễ dàng chuyển đổi giữa các phiên bản chỉ bằng một dòng lệnh. Ví dụ, dự án A yêu cầu Node.js 14, trong khi dự án B cần Node.js 18. NVM sẽ giải quyết vấn đề này một cách hoàn hảo. Hơn nữa, NVM cài đặt Node.js và các gói toàn cục trong thư mục người dùng, giúp bạn không cần quyền sudo khi cài đặt các gói npm, tránh được các vấn đề về quyền truy cập. Đây là phương pháp được khuyến nghị nhiều nhất cho các nhà phát triển.

Tải trực tiếp từ trang chính thức và cấu hình thủ công

Phương pháp này dành cho những người muốn kiểm soát hoàn toàn quá trình cài đặt. Bằng cách tải xuống tệp nhị phân đã được biên dịch sẵn từ trang web chính thức của Node.js, bạn có thể cài đặt bất kỳ phiên bản nào bạn muốn mà không phụ thuộc vào kho lưu trữ của Ubuntu hay NVM. Cách này hữu ích trong các môi trường đặc biệt, chẳng hạn như khi bạn không có quyền root để cài đặt NVM hoặc cần một phiên bản Node.js rất cụ thể cho mục đích kiểm thử. Tuy nhiên, nó đòi hỏi nhiều bước cấu hình thủ công hơn, bao gồm việc giải nén và thiết lập các biến môi trường. Đây là lựa chọn của những người dùng có kinh nghiệm và hiểu rõ về hệ thống Linux.

Hướng dẫn chi tiết từng bước cài đặt và cấu hình Node.js

Bây giờ, chúng ta sẽ đi sâu vào từng phương pháp cài đặt. Hãy chọn cách phù hợp nhất với bạn và làm theo các bước dưới đây.

Bước 1 – Cài đặt qua apt và kiểm tra phiên bản

Phương pháp này sử dụng kho lưu trữ mặc định của Ubuntu. Mặc dù phiên bản có thể cũ hơn, nó rất ổn định và dễ cài đặt.

  1. Cập nhật danh sách gói: Luôn đảm bảo hệ thống của bạn được cập nhật trước khi cài đặt bất cứ thứ gì. sudo apt update
  2. Cài đặt Node.js: Thực thi lệnh sau để cài đặt Node.js. sudo apt install nodejs
  3. Cài đặt npm: Trong một số trường hợp, npm (Node Package Manager) không được cài đặt cùng với Node.js. Bạn nên cài đặt nó một cách tường minh. sudo apt install npm
  4. Kiểm tra phiên bản: Sau khi cài đặt xong, hãy xác minh lại bằng cách kiểm tra phiên bản của Node.js và npm. node -v npm -v Nếu các lệnh này trả về số phiên bản, bạn đã cài đặt thành công.

Hình minh họa

Bước 2 – Cài đặt và sử dụng NVM để quản lý các phiên bản Node.js

Đây là phương pháp được khuyến nghị cho các nhà phát triển.

  1. Cài đặt các công cụ cần thiết: NVM cần một số công cụ biên dịch để hoạt động. Hãy cài đặt chúng trước. sudo apt install build-essential libssl-dev curl
  2. Tải và chạy script cài đặt NVM: Bạn có thể sử dụng curl hoặc wget để tải script cài đặt từ kho lưu trữ chính thức của NVM. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash Script này sẽ tự động tải NVM và cấu hình các biến môi trường cần thiết trong tệp .bashrc của bạn.
  3. Kích hoạt NVM: Để bắt đầu sử dụng NVM ngay lập tức, bạn cần nạp lại cấu hình shell hoặc mở một terminal mới. source ~/.bashrc
  4. Cài đặt phiên bản Node.js mong muốn: Bây giờ bạn có thể cài đặt bất kỳ phiên bản Node.js nào. Ví dụ, để cài đặt phiên bản LTS (Long Term Support) mới nhất: nvm install --lts Hoặc cài đặt một phiên bản cụ thể: nvm install 18.18.0
  5. Sử dụng một phiên bản Node.js: Sau khi cài đặt, bạn cần cho NVM biết phiên bản nào cần sử dụng. nvm use 18.18.0 Bạn có thể kiểm tra lại với node -v.

Hình minh họa

Bước 3 – Tải và cài đặt Node.js thủ công với file cài đặt chính thức

Phương pháp này cung cấp sự kiểm soát tối đa.

  1. Tải xuống tệp nhị phân: Truy cập trang tải xuống chính thức của Node.js và sao chép liên kết cho phiên bản “Linux Binaries (x64)”. Sử dụng wget để tải về. wget https://nodejs.org/dist/v18.18.0/node-v18.18.0-linux-x64.tar.xz
  2. Giải nén tệp: Sử dụng lệnh tar để giải nén tệp vừa tải. tar -xvf node-v18.18.0-linux-x64.tar.xz
  3. Di chuyển thư mục: Để dễ quản lý, hãy di chuyển thư mục đã giải nén vào một vị trí hệ thống như /usr/local/lib. sudo mv node-v18.18.0-linux-x64 /usr/local/lib/nodejs
  4. Tạo các liên kết tượng trưng (Symbolic Links): Để có thể gọi lệnh nodenpm từ bất kỳ đâu, bạn cần tạo các liên kết tượng trưng trong thư mục /usr/local/bin. sudo ln -s /usr/local/lib/nodejs/bin/node /usr/local/bin/node sudo ln -s /usr/local/lib/nodejs/bin/npm /usr/local/bin/npm sudo ln -s /usr/local/lib/nodejs/bin/npx /usr/local/bin/npx
  5. Kiểm tra cài đặt: Cuối cùng, hãy kiểm tra lại phiên bản để chắc chắn mọi thứ đã hoạt động. node -v npm -v

Kiểm tra phiên bản Node.js sau khi cài đặt

Sau khi hoàn tất quá trình cài đặt theo một trong các phương pháp trên, bước tiếp theo là xác nhận rằng Node.js và npm đã được thiết lập đúng cách và sẵn sàng hoạt động. Việc kiểm tra này không chỉ đơn giản là xem số phiên bản, mà còn đảm bảo môi trường thực thi của bạn ổn định.

Lệnh kiểm tra phiên bản Node.js và npm

Đây là bước xác minh cơ bản nhất. Mở terminal của bạn và gõ lần lượt các lệnh sau: Để kiểm tra phiên bản Node.js: node -v Lệnh này sẽ hiển thị phiên bản Node.js hiện tại đang hoạt động trên hệ thống của bạn, ví dụ: v18.18.0. Để kiểm tra phiên bản npm: npm -v Tương tự, lệnh này sẽ hiển thị phiên bản của Node Package Manager, ví dụ: 9.8.1. Nếu cả hai lệnh đều trả về số phiên bản thay vì thông báo lỗi “command not found”, điều đó có nghĩa là quá trình cài đặt cơ bản đã thành công và hệ thống đã nhận diện được các tệp thực thi.

Hình minh họa

Xác nhận môi trường hoạt động ổn định

Chỉ kiểm tra phiên bản thôi là chưa đủ. Để chắc chắn 100% rằng môi trường Node.js của bạn hoạt động bình thường, hãy thử chạy một ứng dụng nhỏ. Đây là cách tốt nhất để kiểm tra xem trình thông dịch JavaScript có thực sự làm việc hay không.

  1. Tạo một tệp JavaScript: Sử dụng một trình soạn thảo văn bản như nano để tạo một tệp mới có tên test_app.js. nano test_app.js
  2. Viết một đoạn mã đơn giản: Bên trong tệp, hãy thêm đoạn mã sau. Đây là một máy chủ web “Hello World” cơ bản. const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => {   res.statusCode = 200;   res.setHeader('Content-Type', 'text/plain');   res.end('Chao mung den voi AZWEB!\n'); }); server.listen(port, hostname, () => {   console.log(`Server dang chay tai http://${hostname}:${port}/`); }); Lưu và đóng tệp (trong nano, nhấn Ctrl + X, sau đó Y, và Enter).
  3. Chạy ứng dụng: Bây giờ, hãy thực thi tệp này bằng Node.js. node test_app.js Nếu bạn thấy thông báo “Server dang chay tai http://127.0.0.1:3000/”, môi trường của bạn đã hoàn toàn sẵn sàng. Bạn có thể mở trình duyệt và truy cập địa chỉ này để xem kết quả.

Hình minh họa

Cách cập nhật và quản lý phiên bản Node.js hiệu quả

Thế giới JavaScript phát triển rất nhanh, và Node.js cũng không ngoại lệ. Việc giữ cho phiên bản Node.js của bạn được cập nhật là rất quan trọng để có được các tính năng mới nhất, cải thiện hiệu suất và các bản vá bảo mật.

Thực hiện cập nhật Node.js qua apt và NVM

Cách bạn cập nhật Node.js phụ thuộc vào phương pháp cài đặt ban đầu. Nếu bạn cài đặt qua apt: Việc cập nhật khá đơn giản và được quản lý bởi hệ thống. Tuy nhiên, bạn chỉ có thể nâng cấp lên phiên bản mới nhất có sẵn trong kho lưu trữ của Ubuntu.

  1. Cập nhật danh sách gói: sudo apt update
  2. Nâng cấp gói nodejs: sudo apt install nodejs --only-upgrade

Nếu bạn sử dụng NVM: NVM cung cấp cách cập nhật linh hoạt và mạnh mẽ hơn nhiều.

  1. Liệt kê các phiên bản có sẵn: Để xem tất cả các phiên bản Node.js bạn có thể cài đặt, hãy chạy: nvm ls-remote
  2. Cài đặt phiên bản mới: Chọn phiên bản bạn muốn và cài đặt nó. Ví dụ, để cài đặt phiên bản LTS mới nhất: nvm install --lts
  3. Chuyển sang phiên bản mới: Sau khi cài đặt, bạn có thể chuyển sang sử dụng nó ngay lập tức: nvm use --lts NVM sẽ tự động tải xuống và chuyển đổi môi trường cho bạn.

Thủ thuật chuyển đổi giữa các phiên bản Node.js với NVM

Đây chính là sức mạnh thực sự của NVM. Giả sử bạn đang làm việc trên hai dự án: một dự án cũ yêu cầu Node.js 14 và một dự án mới sử dụng Node.js 18.

  1. Liệt kê các phiên bản đã cài đặt: Để xem bạn đang có những phiên bản nào trên máy, dùng lệnh: nvm ls Lệnh này sẽ hiển thị một danh sách, với một mũi tên chỉ vào phiên bản đang được sử dụng.
  2. Chuyển đổi phiên bản: Để chuyển sang làm việc với dự án cũ, bạn chỉ cần gõ: nvm use 14 Để quay lại dự án mới: nvm use 18
  3. Thiết lập phiên bản mặc định: Nếu bạn muốn một phiên bản cụ thể (ví dụ: phiên bản LTS mới nhất) được sử dụng mỗi khi bạn mở một terminal mới, hãy đặt nó làm mặc định: nvm alias default 'lts/*' Với những lệnh đơn giản này, việc quản lý nhiều môi trường phát triển trở nên vô cùng dễ dàng.

Hình minh họa

Xử lý lỗi thường gặp trong quá trình cài đặt Node.js

Ngay cả với những hướng dẫn chi tiết nhất, đôi khi bạn vẫn có thể gặp phải một vài sự cố. Dưới đây là cách nhận biết và khắc phục một số lỗi phổ biến nhất khi cài đặt Node.js trên Ubuntu.

Lỗi quyền truy cập và cách khắc phục

Đây là lỗi kinh điển, thường có thông báo “EACCES: permission denied”. Lỗi này xảy ra khi bạn cố gắng thực hiện một hành động mà không có đủ quyền hạn.

Nguyên nhân:

  • Chạy lệnh npm install -g <package_name> mà không có sudo khi Node.js được cài đặt qua apt. Hệ thống cố gắng ghi vào các thư mục hệ thống (như /usr/lib/node_modules) mà người dùng thông thường không có quyền ghi.
  • Cấu hình sai quyền sở hữu của các thư mục hệ thống.

Cách khắc phục:

  1. Giải pháp tốt nhất: Sử dụng NVM. Vì NVM cài đặt Node.js trong thư mục chính của người dùng (~/.nvm), bạn sẽ không bao giờ cần sudo để cài đặt các gói npm toàn cục. Đây là lý do chính tại sao NVM được khuyến nghị.
  2. Nếu phải dùng apt: Bạn có thể thay đổi thư mục cài đặt mặc định của npm để nó trỏ đến một thư mục trong thư mục nhà của bạn.
    • Tạo một thư mục mới: mkdir ~/.npm-global
    • Cấu hình npm để sử dụng thư mục này: npm config set prefix '~/.npm-global'
    • Thêm đường dẫn mới vào biến môi trường PATH bằng cách chỉnh sửa tệp .bashrc: export PATH=~/.npm-global/bin:$PATH
    • Nạp lại cấu hình: source ~/.bashrc

    Sau đó, bạn có thể chạy npm install -g mà không cần sudo.

Hình minh họa

Lỗi do xung đột phiên bản hoặc npm không hoạt động

Đôi khi, sau khi cài đặt, bạn gõ npm -v nhưng lại nhận được lỗi “command not found” hoặc có sự không nhất quán giữa phiên bản nodenpm.

Nguyên nhân:

  • Cài đặt qua apt: Kho lưu trữ của Ubuntu đôi khi tách nodejsnpm thành hai gói riêng biệt. Bạn có thể đã cài đặt nodejs mà quên cài đặt npm.
  • Xung đột PATH: Có thể hệ thống của bạn có nhiều phiên bản Node.js được cài đặt ở các vị trí khác nhau (ví dụ: một từ apt và một từ NVM), và biến môi trường PATH đang trỏ đến sai vị trí.

Cách khắc phục:

  1. Kiểm tra cài đặt npm: Nếu bạn đã sử dụng apt, hãy chắc chắn rằng bạn đã chạy lệnh sudo apt install npm.
  2. Kiểm tra biến PATH: Chạy lệnh echo $PATH. Đảm bảo rằng đường dẫn đến thư mục bin của Node.js (ví dụ: ~/.nvm/versions/node/v18.18.0/bin nếu dùng NVM) xuất hiện trước các đường dẫn hệ thống khác như /usr/bin.
  3. Gỡ cài đặt các phiên bản cũ: Nếu bạn nghi ngờ có xung đột, hãy gỡ bỏ hoàn toàn phiên bản Node.js đã cài đặt qua apt (sudo apt purge nodejs npm) trước khi cài đặt lại bằng NVM. Điều này đảm bảo một môi trường sạch sẽ và nhất quán.

Lời khuyên và best practices khi thiết lập môi trường Node.js trên Ubuntu 20.04

Thiết lập một môi trường phát triển Node.js không chỉ dừng lại ở việc cài đặt thành công. Để có một quy trình làm việc hiệu quả, bảo mật và dễ quản lý, bạn nên áp dụng các phương pháp tốt nhất sau đây.

  • Nên ưu tiên dùng NVM để quản lý phiên bản: Đây là lời khuyên quan trọng nhất. NVM giải quyết hầu hết các vấn đề về quyền và sự phức tạp khi làm việc trên nhiều dự án. Nó cho phép bạn chuyển đổi môi trường một cách liền mạch, thử nghiệm ứng dụng trên các phiên bản Node khác nhau và tránh xung đột hệ thống. Hãy coi NVM là công cụ tiêu chuẩn cho bất kỳ nhà phát triển Node.js nào.
  • Luôn cập nhật hệ thống trước khi cài đặt: Chạy sudo apt update && sudo apt upgrade trước khi bắt đầu là một thói quen tốt. Điều này đảm bảo bạn có các bản vá bảo mật mới nhất và các thư viện hệ thống cần thiết cho Node.js hoạt động trơn tru, giảm thiểu nguy cơ lỗi do các gói phụ thuộc đã lỗi thời.
  • Không nên cài nhiều phiên bản Node.js không dùng đến để tránh xung đột: Mặc dù NVM giúp quản lý nhiều phiên bản dễ dàng, việc cài đặt quá nhiều phiên bản không cần thiết có thể gây nhầm lẫn và tốn dung lượng đĩa. Hãy giữ lại những phiên bản bạn thực sự cần cho các dự án của mình và gỡ bỏ những phiên bản cũ không còn sử dụng bằng lệnh nvm uninstall <version>.
  • Sử dụng môi trường ảo hóa hoặc container nếu phát triển nhiều dự án: Đối với các dự án phức tạp hoặc khi làm việc trong một đội nhóm, hãy xem xét sử dụng các công nghệ như Docker. Docker cho phép bạn “đóng gói” ứng dụng của mình cùng với môi trường Node.js và tất cả các phụ thuộc vào một container biệt lập. Điều này đảm bảo rằng ứng dụng sẽ chạy nhất quán trên mọi máy tính, từ máy của lập trình viên đến máy chủ sản phẩm. Đây là bước tiến tiếp theo để chuyên nghiệp hóa quy trình phát triển của bạn.

Hình minh họa

Kết luận

Qua bài viết này, chúng ta đã cùng nhau khám phá một cách chi tiết về tầm quan trọng của Node.js và các phương pháp cài đặt nó trên hệ điều hành Ubuntu 20.04. Từ cách tiếp cận nhanh chóng và đơn giản bằng trình quản lý gói apt, sự linh hoạt vượt trội của Node Version Manager (NVM), cho đến khả năng kiểm soát tuyệt đối khi cài đặt thủ công, mỗi phương pháp đều có những ưu điểm riêng, phù hợp với từng nhu cầu và trình độ khác nhau. Việc thiết lập một môi trường phát triển đúng đắn là nền tảng vững chắc cho sự thành công của bất kỳ dự án nào.

Chúng tôi đặc biệt khuyến khích các lập trình viên, dù mới bắt đầu hay đã có kinh nghiệm, hãy áp dụng NVM để quản lý phiên bản Node.js. Công cụ này không chỉ giúp bạn dễ dàng chuyển đổi giữa các dự án mà còn loại bỏ các vấn đề phiền toái về quyền truy cập, giúp bạn tập trung hoàn toàn vào việc viết mã. Giờ đây, khi môi trường của bạn đã được thiết lập hoàn chỉnh, bước tiếp theo là gì? Đừng ngần ngại, hãy bắt tay vào xây dựng ứng dụng Node.js đầu tiên của bạn trên Ubuntu 20.04 và trải nghiệm sức mạnh của nền tảng tuyệt vời này.

Đánh giá