Khi làm việc với Node.js trên hệ thống Linux, chắc hẳn bạn đã từng gặp phải thông báo lỗi bash: node: command not found. Vậy nguyên nhân của lỗi này là gì và làm thế nào để khắc phục nhanh chóng? Hãy cùng Vietnix tìm hiểu chi tiết trong nội dung bài viết này.
Hiểu đúng về lỗi Bash: Node: command not found
Error Bash: Node: command not found được xem là một lỗi cản trở người dùng, có thể tạm dừng quá trình sử dụng trên hệ thống. Lỗi này thông thường đến từ việc npm (Node package manager) được cài đặt chưa đúng cách hoặc đường dẫn (PATH) không thể truy cập được trên hệ thống Linux.
6 nguyên nhân gây ra lỗi npm: command not found
Lỗi Bash: Node: command not found xuất hiện khi hệ thống Linux không thể tìm thấy lệnh node – dòng lệnh dùng để chạy code JavaScript với Node.js. Dưới đây là 6 nguyên nhân phổ biến gây ra lỗi:
- Chưa cài đặt Node.js: Nếu máy tính của bạn chưa có Node.js, hiển nhiên bạn sẽ không thể sử dụng lệnh “node”.
- Chưa cài đặt NVM: Node.js Version Manager (NVM) là một công cụ hữu ích để quản lý nhiều phiên bản Node.js trên cùng một máy. Nếu chưa có NVM, lệnh “node” có thể không hoạt động đúng.
- Đường dẫn (PATH) không chính xác: Hệ thống có thể không tìm thấy lệnh “node” nếu biến môi trường PATH chưa được thiết lập để trỏ đến thư mục cài đặt Node.js.
- Quyền truy cập không đủ: Đôi khi, bạn có thể gặp lỗi do không có quyền thực thi đối với tập tin thực thi của Node.js. Thông thường, bạn sẽ cần đến quyền truy cập root từ lệnh sudo để thực thi lệnh cài đặt.
- Cấu hình Shell không đúng: Các tập tin cấu hình Shell như ~/.bashrc, ~/.bash_profile, hay ~/.zshrc có thể cần được cập nhật để bao gồm đường dẫn đến Node.js.
- Nhiều phiên bản Node.js: Nếu máy tính của bạn có nhiều phiên bản Node.js, hãy đảm bảo phiên bản bạn muốn sử dụng đang được kích hoạt.
Bên cạnh đó, bạn cần hiểu rằng hầu hết mọi lỗi không tìm thấy lệnh trên Bash Shell đều xuất phát từ nguyên nhân chính là sai sót đường dẫn (PATH) hoặc biến môi trường PATH. Vì thế, để hiểu mọi kiểu Error Bash, bạn cần năm bắt chi tiết lỗi Bash: command not found.
Ngoài ra, bạn cần tham khảo trước các câu lệnh trong Linux trước khi tìm hiểu cách xử lý lỗi trên môi trường Bash.
4 ví dụ về việc xử lý lỗi Bash: Node: command not found
Ví dụ 1: Cài đặt lại Node.js vào hệ thống
Lỗi bash: node: command not found thường xuất hiện khi Node.js chưa được cài đặt trên hệ thống của bạn hoặc đã được cài đặt những đường dẫn không chính xác. Để khắc phục lỗi, bạn cần cài đặt Node.js bằng cách sử dụng npm (trình quản lý gói) tương thích với hệ điều hành của bạn.
Ví dụ: bạn có thể sử dụng APT trên Ubuntu, YUM trên RedHat hoặc Pacman trên Arch Linux.
Dưới đây là các bước hướng dẫn cài đặt Node.js trên Ubuntu:
Bước 1: Bạn nhấn tổ hợp phím CTRL + ALT + T để mở terminal trên Ubuntu.
Bước 2: Bạn chạy lệnh sudo apt update để cập nhật kho lưu trữ.
Bước 3: Cài đặt Node.js bằng lệnh:
sudo apt install -y nodejs
Bước 4: Sau khi cài đặt hoàn tất, chạy lệnh node để kiểm tra xem Node.js đã được cài đặt thành công hay chưa. Nếu thành công, bạn sẽ thấy dấu nhắc lệnh của Node.js.
Ví dụ 2: Thiết lập lại ví trí đường dẫn của biến môi trường PATH
Một nguyên nhân phổ biến khác khiến bạn gặp lỗi node: command not found là do biến môi trường PATH của hệ thống chưa bao gồm đường dẫn đến lệnh node. Để khắc phục lỗi và đảm bảo Bash có thể xác định vị trí node, bạn hãy làm theo các bước sau:
Bước 1: Đầu tiên, bạn nhấn tổ hợp phím CTRL + ALT + T để mở terminal.
Bước 2: Bạn kiểm tra đường dẫn hiện tại của node bằng lệnh which:
which node
Bước 3: Bạn sử dụng trình soạn thảo nano để mở file .bashrc băng dòng lệnh nano:
nano ~/.bashrc
Bước 4: Bạn thêm đường dẫn đến node vào PATH:
- Bạn hãy sao chép đoạn code sau: `export PATH=$PATH:<path to node>`
- Thay thế <path to node> bằng đường dẫn bạn đã tìm được ở Bước 2. Ví dụ: export PATH=$PATH:/usr/bin/node
- Sau đó, bạn dán đoạn code đã chỉnh sửa vào cuối file .bashrc.
Bước 5: Bạn nhấn CTRL + S để lưu, sau đó nhấn CTRL + X để đóng file .bashrc.
Bước 6: Bạn tiến hành cập nhật file .bashrc để áp dụng những thay đổi bằng lệnh source:
source ~/.bashrc
Bước 7: Để kiểm tra xem lỗi đã được khắc phục hay chưa, bạn hãy chạy lệnh sau:
node --version
Nếu thành công, bạn sẽ thấy phiên bản Node.js được hiển thị.
Sau khi thêm đường dẫn vào biến môi trường PATH, lệnh node sẽ hoạt động mà không gặp lỗi.
Ví dụ 3: Alias – tạo biệt danh mới cho lệnh node
Khi gặp lỗi node: command not found trong Bash, một giải pháp nhanh chóng là tạo một biệt danh (alias) cho lệnh node. Biệt danh này sẽ giúp Bash nhận diện và thực thi lệnh node một cách chính xác. Dưới đây là cách thực hiện:
Bạn mở terminal và chạy lệnh echo với cú pháp như sau sau:
echo "alias node='$(which node)'" >> ~/.bashrc; . ~/.bashrc
Lệnh này sẽ thêm một alias cho lệnh “node” vào file .bashrc và áp dụng ngay lập tức trong phiên terminal hiện tại. Alias này đảm bảo rằng lệnh “node” trỏ đến đúng đường dẫn bằng cách sử dụng cú pháp $(which node)
để lấy đường dẫn thực thi của node trong hệ thống.
Ví dụ 4: Tạo liên kết tượng trưng đến các file và thư mục
Liên kết tượng trưng (symbolic link) cho phép bạn tạo các lối tắt linh hoạt đến các file hoặc thư mục khác. Không giống như việc sao chép dữ liệu, liên kết tượng trưng chỉ chứa đường dẫn đến vị trí thực tế của mục tiêu, giúp tiết kiệm không gian đĩa và đảm bảo mọi thay đổi đều được phản ánh tại mọi nơi liên kết đến.
Để tạo một liên kết tượng trưng cho lệnh node, hãy chạy lệnh sau:
sudo ln -s $(which node) /usr/local/bin/node
Lệnh này sẽ tạo một liên kết tượng trưng có tên node trong thư mục /usr/local/bin/. Liên kết này sẽ trỏ đến đường dẫn thực tế của lệnh node mà bạn đã tìm kiếm bằng lệnh which node.
Sau khi tạo liên kết tượng trưng, bạn có thể chạy lệnh node từ bất kỳ đâu trong hệ thống mà không gặp lỗi npm: command not found.
4 bước xử lý lỗi node: command not found trong MacOS?
Để khắc phục lỗi node: command not found trên MacOS, bạn có thể làm theo các bước sau:
Bước 1: Bạn mở Terminal và chạy lệnh sau để cài đặt Node.js phiên bản 8 (bạn có thể thay đổi phiên bản mong muốn):
brew install node@8
Bước 2: Sau khi cài đặt xong, bạn hãy chạy lệnh sau để tạo liên kết cho Node.js trong thư mục mặc định của hệ thống:
brew link node@8
Bước 3: Bạn chạy lệnh node –version để kiểm tra xem Node.js đã được cài đặt thành công hay chưa. Nếu bạn thấy phiên bản Node.js được hiển thị, nghĩa là bạn đã cài đặt thành công.
Bước 4: Nếu vẫn gặp lỗi, bạn hãy chạy lệnh sau:
brew link --overwrite --force node@8
Lệnh này sẽ ghi đè bất kỳ liên kết tượng trưng nào có liên quan đến Node.js và đảm bảo rằng phiên bản bạn đã chỉ định được liên kết và hoạt động trên hệ thống.
Câu hỏi thường gặp
Có thể sử dụng Node.js để phát triển các ứng dụng web trên hệ điều hành Linux không?
Có thể. Bạn nên kết hợp sử dụng Node.js và Linux với tính năng hữu ích như: hiệu suất cao, khả năng mở rộng, sự tương thích tốt.
Đâu là sự khác biệt giữa lệnh node
và npm
trong hệ điều hành Linux?
Node.js là công cụ để chạy mã JavaScript, còn npm là công cụ để quản lý các thư viện mà mã JavaScript đó sử dụng.
Node.js không thể hoạt động một mình và phải cần đến các thư viện được cung cấp bởi npm để xây dựng các ứng dụng phức tạp.
Khi gặp lỗi bash: node: command not found thì tìm kiếm thông tin hỗ trợ ở đâu trên Internet?
Stack Overflow: Được x diễn đàn lớn nhất và uy tín nhất về lập trình.
Reddit: Các subreddit như r/nodejs, r/linux, r/programming cũng là nơi tập trung của nhiều lập trình viên.
Các diễn đàn chuyên biệt về Node.js: Có nhiều diễn đàn chuyên sâu về Node.js mà bạn có thể tham gia.
Lời kết
Bài viết đã hướng dẫn bạn cách khắc phục lỗi bash: node: command not found thông qua 4 ví dụ minh họa đơn giản và hiệu quả. Hy vọng với những giải pháp trên, bạn đã có thể giải quyết vấn đề và tiếp tục phát triển ứng dụng Node.js một cách thuận lợi. Nếu gặp khó khăn trong quá trình sửa lỗi, bạn hãy bình luận bên dưới để được hỗ trợ nhanh chóng.