{"id":41444,"date":"2026-06-03T13:11:40","date_gmt":"2026-06-03T06:11:40","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=41444"},"modified":"2026-06-03T13:15:55","modified_gmt":"2026-06-03T06:15:55","slug":"cach-cai-node-js-tren-ubuntu","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t Node.js tr\u00ean Ubuntu Chi ti\u1ebft A &#8211; Z (2026)"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed8I DUNG<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Yeu-cau-he-thong-truoc-khi-cai-dat-Nodejs-tren-Ubuntu\" >Y\u00eau c\u1ea7u h\u1ec7 th\u1ed1ng tr\u01b0\u1edbc khi c\u00e0i \u0111\u1eb7t Node.js tr\u00ean Ubuntu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Cach-1-Cai-dat-Nodejs-tu-kho-ung-dung-mac-dinh-cua-Ubuntu-qua-Apt\" >C\u00e1ch 1: C\u00e0i \u0111\u1eb7t Node.js t\u1eeb kho \u1ee9ng d\u1ee5ng m\u1eb7c \u0111\u1ecbnh c\u1ee7a Ubuntu qua Apt<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Cach-2-Cai-dat-Nodejs-phien-ban-moi-bang-NodeSource-PPA\" >C\u00e1ch 2: C\u00e0i \u0111\u1eb7t Node.js phi\u00ean b\u1ea3n m\u1edbi b\u1eb1ng NodeSource PPA<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Cach-3-Su-dung-NVM-Node-Version-Manager-de-quan-ly-nhieu-phien-ban\" >C\u00e1ch 3: S\u1eed d\u1ee5ng NVM (Node Version Manager) \u0111\u1ec3 qu\u1ea3n l\u00fd nhi\u1ec1u phi\u00ean b\u1ea3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Cach-4-Bien-dich-Nodejs-truc-tiep-tu-Ma-nguon-Danh-cho-Chuyen-gia\" >C\u00e1ch 4: Bi\u00ean d\u1ecbch Node.js tr\u1ef1c ti\u1ebfp t\u1eeb M\u00e3 ngu\u1ed3n (D\u00e0nh cho Chuy\u00ean gia)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Cach-go-bo-hoan-toan-Nodejs-khoi-Ubuntu\" >C\u00e1ch g\u1ee1 b\u1ecf ho\u00e0n to\u00e0n Node.js kh\u1ecfi Ubuntu<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#1-Go-bo-phien-ban-cai-dat-qua-Apt-Default-hoac-NodeSource\" >1. G\u1ee1 b\u1ecf phi\u00ean b\u1ea3n c\u00e0i \u0111\u1eb7t qua Apt (Default ho\u1eb7c NodeSource)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#2-Go-bo-phien-ban-quan-ly-boi-NVM\" >2. G\u1ee1 b\u1ecf phi\u00ean b\u1ea3n qu\u1ea3n l\u00fd b\u1edfi NVM<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Cac-loi-thuong-gap-va-cach-xu-ly-nhanh-chong\" >C\u00e1c l\u1ed7i th\u01b0\u1eddng g\u1eb7p v\u00e0 c\u00e1ch x\u1eed l\u00fd nhanh ch\u00f3ng<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#1-Loi-phan-quyen-khi-cai-dat-Package-Global-bang-NPM-Permission-Denied\" >1. L\u1ed7i ph\u00e2n quy\u1ec1n khi c\u00e0i \u0111\u1eb7t Package Global b\u1eb1ng NPM (Permission Denied)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#2-Loi-khong-tim-thay-lenh-NVM-sau-khi-cai-dat-Command-nvm-not-found\" >2. L\u1ed7i kh\u00f4ng t\u00ecm th\u1ea5y l\u1ec7nh NVM sau khi c\u00e0i \u0111\u1eb7t (Command 'nvm' not found)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#3-Xung-dot-giua-phien-ban-Nodejs-cai-bang-apt-va-nvm\" >3. Xung \u0111\u1ed9t gi\u1eefa phi\u00ean b\u1ea3n Node.js c\u00e0i b\u1eb1ng\u00a0apt\u00a0v\u00e0\u00a0nvm<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#Cau-hoi-thuong-gap-FAQs\" >C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQs)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#1-Phuong-phap-cai-dat-Nodejs-tot-nhat-tren-Ubuntu-la-gi\" >1. Ph\u01b0\u01a1ng ph\u00e1p c\u00e0i \u0111\u1eb7t Node.js t\u1ed1t nh\u1ea5t tr\u00ean Ubuntu l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#2-Bo-cai-dat-Nodejs-co-di-kem-trinh-quan-ly-goi-npm-khong\" >2. B\u1ed9 c\u00e0i \u0111\u1eb7t Node.js c\u00f3 \u0111i k\u00e8m tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i npm kh\u00f4ng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#3-Lam-the-nao-de-cap-nhat-phien-ban-Nodejs-moi-tren-Ubuntu\" >3. L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 c\u1eadp nh\u1eadt phi\u00ean b\u1ea3n Node.js m\u1edbi tr\u00ean Ubuntu?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#4-Toi-co-the-cai-dat-song-song-nhieu-phien-ban-Nodejs-tren-cung-mot-may-chu-khong\" >4. T\u00f4i c\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t song song nhi\u1ec1u phi\u00ean b\u1ea3n Node.js tr\u00ean c\u00f9ng m\u1ed9t m\u00e1y ch\u1ee7 kh\u00f4ng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/interdata.vn\/blog\/cach-cai-node-js-tren-ubuntu\/#5-Cai-dat-cac-goi-Nodejs-tu-kho-luu-tru-cua-NodeSource-co-an-toan-khong\" >5. C\u00e0i \u0111\u1eb7t c\u00e1c g\u00f3i Node.js t\u1eeb kho l\u01b0u tr\u1eef c\u1ee7a NodeSource c\u00f3 an to\u00e0n kh\u00f4ng?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<p><a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" rel=\"nofollow noopener\">Node.js<\/a>\u00a0l\u00e0 m\u00f4i tr\u01b0\u1eddng runtime JavaScript m\u00e3 ngu\u1ed3n m\u1edf ho\u1ea1t \u0111\u1ed9ng ph\u00eda m\u00e1y ch\u1ee7 (server-side). C\u00f4ng ngh\u1ec7 n\u00e0y cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng backend c\u00f3 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng cao b\u1eb1ng ch\u00ednh ng\u00f4n ng\u1eef JavaScript quen thu\u1ed9c.<\/p>\n<p>H\u01b0\u1edbng d\u1eabn n\u00e0y tr\u00ecnh b\u00e0y c\u1ee5 th\u1ec3 4 ph\u01b0\u01a1ng ph\u00e1p c\u00e0i \u0111\u1eb7t Node.js tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Ubuntu:<\/p>\n<ol>\n<li>S\u1eed d\u1ee5ng tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i\u00a0<code>apt<\/code>\u00a0m\u1eb7c \u0111\u1ecbnh c\u1ee7a Ubuntu.<\/li>\n<li>S\u1eed d\u1ee5ng\u00a0<code>apt<\/code>\u00a0k\u1ebft h\u1ee3p v\u1edbi kho l\u01b0u tr\u1eef PPA c\u1ee7a NodeSource \u0111\u1ec3 t\u00f9y ch\u1ecdn c\u00e1c phi\u00ean b\u1ea3n c\u1ee5 th\u1ec3.<\/li>\n<li>S\u1eed d\u1ee5ng NVM (Node Version Manager) \u0111\u1ec3 c\u00e0i \u0111\u1eb7t v\u00e0 qu\u1ea3n l\u00fd linh ho\u1ea1t nhi\u1ec1u phi\u00ean b\u1ea3n song song.<\/li>\n<li>Bi\u00ean d\u1ecbch tr\u1ef1c ti\u1ebfp t\u1eeb m\u00e3 ngu\u1ed3n (Source Code) d\u00e0nh cho ng\u01b0\u1eddi d\u00f9ng n\u00e2ng cao n\u00e2ng cao hi\u1ec7u n\u0103ng.<\/li>\n<\/ol>\n<p>T\u00f9y v\u00e0o nhu c\u1ea7u th\u1ef1c t\u1ebf, b\u1ea1n c\u00f3 th\u1ec3 ch\u1ecdn ph\u01b0\u01a1ng \u00e1n ph\u00f9 h\u1ee3p. Tr\u00ecnh qu\u1ea3n l\u00fd m\u1eb7c \u0111\u1ecbnh\u00a0<code>apt<\/code>\u00a0l\u00e0 l\u1ef1a ch\u1ecdn nhanh nh\u1ea5t n\u1ebfu b\u1ea1n ch\u1ec9 c\u1ea7n ch\u1ea1y c\u00e1c \u1ee9ng d\u1ee5ng c\u01a1 b\u1ea3n. N\u1ebfu c\u1ea7n c\u00e1c phi\u00ean b\u1ea3n Node m\u1edbi h\u01a1n ho\u1eb7c c\u0169 h\u01a1n \u0111\u1ec3 t\u01b0\u01a1ng th\u00edch d\u1ef1 \u00e1n, NodeSource PPA l\u00e0 gi\u1ea3i ph\u00e1p t\u1ed1t. Ri\u00eang \u0111\u1ed1i v\u1edbi c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u1ea7n chuy\u1ec3n \u0111\u1ed5i phi\u00ean b\u1ea3n li\u00ean t\u1ee5c gi\u1eefa c\u00e1c d\u1ef1 \u00e1n, NVM l\u00e0 c\u00f4ng c\u1ee5 b\u1eaft bu\u1ed9c ph\u1ea3i c\u00f3.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-41465\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/06\/Huong-dan-cai-dat-Node.js-tren-Ubuntu.jpg\" alt=\"H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t Node.js tr\u00ean Ubuntu\" width=\"700\" height=\"467\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/06\/Huong-dan-cai-dat-Node.js-tren-Ubuntu.jpg 1000w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/06\/Huong-dan-cai-dat-Node.js-tren-Ubuntu-300x200.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/06\/Huong-dan-cai-dat-Node.js-tren-Ubuntu-768x512.jpg 768w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Yeu-cau-he-thong-truoc-khi-cai-dat-Nodejs-tren-Ubuntu\"><\/span>Y\u00eau c\u1ea7u h\u1ec7 th\u1ed1ng tr\u01b0\u1edbc khi c\u00e0i \u0111\u1eb7t Node.js tr\u00ean Ubuntu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0110\u1ec3 th\u1ef1c hi\u1ec7n theo h\u01b0\u1edbng d\u1eabn n\u00e0y, b\u1ea1n c\u1ea7n chu\u1ea9n b\u1ecb:<\/p>\n<ol>\n<li>M\u1ed9t m\u00e1y ch\u1ee7 ch\u1ea1y h\u1ec7 \u0111i\u1ec1u h\u00e0nh Ubuntu (h\u1ed7 tr\u1ee3 t\u1ed1t nh\u1ea5t c\u00e1c phi\u00ean b\u1ea3n Ubuntu 20.04, 22.04 v\u00e0 24.04 LTS).<\/li>\n<li>T\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng c\u00f3 quy\u1ec1n th\u1ef1c thi l\u1ec7nh\u00a0<code>sudo<\/code>\u00a0(h\u1ea1n ch\u1ebf s\u1eed d\u1ee5ng tr\u1ef1c ti\u1ebfp t\u00e0i kho\u1ea3n\u00a0<code>root<\/code>\u00a0\u0111\u1ec3 \u0111\u1ea3m b\u1ea3o an to\u00e0n b\u1ea3o m\u1eadt).<\/li>\n<\/ol>\n<div class=\"info-box\">\u1ee8ng d\u1ee5ng Node.js th\u01b0\u1eddng y\u00eau c\u1ea7u hi\u1ec7u n\u0103ng \u0111\u1ecdc\/ghi (I\/O) c\u1ef1c cao c\u00f9ng b\u0103ng th\u00f4ng k\u1ebft n\u1ed1i \u1ed5n \u0111\u1ecbnh. \u0110\u1ec3 \u0111\u1ea3m b\u1ea3o m\u00f4i tr\u01b0\u1eddng v\u1eadn h\u00e0nh m\u01b0\u1ee3t m\u00e0, b\u1ea1n n\u00ean trang b\u1ecb m\u1ed9t m\u00e1y ch\u1ee7 \u1ea3o ch\u1ea5t l\u01b0\u1ee3ng cao. Tham kh\u1ea3o d\u1ecbch v\u1ee5 <strong><a href=\"https:\/\/interdata.vn\/thue-vps\/\" target=\"_blank\" rel=\"noopener\">Thu\u00ea m\u00e1y ch\u1ee7 VPS t\u1ed1c \u0111\u1ed9 cao t\u1ea1i InterData<\/a><\/strong> v\u1edbi h\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef NVMe U.2 si\u00eau nhanh, h\u1ea1 t\u1ea7ng m\u1ea1ng b\u0103ng th\u00f4ng r\u1ed9ng v\u00e0 \u0111\u1ed9i ng\u0169 h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt 24\/7 lu\u00f4n \u0111\u1ed3ng h\u00e0nh c\u00f9ng b\u1ea1n.<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Cach-1-Cai-dat-Nodejs-tu-kho-ung-dung-mac-dinh-cua-Ubuntu-qua-Apt\"><\/span>C\u00e1ch 1: C\u00e0i \u0111\u1eb7t Node.js t\u1eeb kho \u1ee9ng d\u1ee5ng m\u1eb7c \u0111\u1ecbnh c\u1ee7a Ubuntu qua Apt<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kho ph\u1ea7n m\u1ec1m ch\u00ednh th\u1ee9c c\u1ee7a Ubuntu lu\u00f4n t\u00edch h\u1ee3p s\u1eb5n m\u1ed9t phi\u00ean b\u1ea3n \u1ed5n \u0111\u1ecbnh c\u1ee7a Node.js \u0111\u1ec3 ng\u01b0\u1eddi d\u00f9ng d\u1ec5 d\u00e0ng c\u00e0i \u0111\u1eb7t v\u00e0 \u0111\u1ed3ng b\u1ed9 h\u1ec7 th\u1ed1ng nhanh ch\u00f3ng. Phi\u00ean b\u1ea3n n\u00e0y tuy kh\u00f4ng ph\u1ea3i l\u00e0 m\u1edbi nh\u1ea5t nh\u01b0ng c\u00f3 \u0111\u1ed9 \u1ed5n \u0111\u1ecbnh c\u1ef1c k\u1ef3 cao, ph\u00f9 h\u1ee3p cho c\u00e1c t\u00e1c v\u1ee5 th\u1eed nghi\u1ec7m ho\u1eb7c v\u1eadn h\u00e0nh h\u1ec7 th\u1ed1ng c\u01a1 b\u1ea3n.<\/p>\n<p>\u0110\u1ea7u ti\u00ean, h\u00e3y c\u1eadp nh\u1eadt l\u1ea1i danh s\u00e1ch g\u00f3i ph\u1ea7n m\u1ec1m tr\u00ean m\u00e1y ch\u1ee7:<\/p>\n<pre><code>sudo apt update\r\n<\/code><\/pre>\n<p>Ti\u1ebfp t\u1ee5c ch\u1ea1y l\u1ec7nh c\u00e0i \u0111\u1eb7t g\u00f3i Node.js:<\/p>\n<pre><code>sudo apt install nodejs\r\n<\/code><\/pre>\n<p>Nh\u1ea5n\u00a0<code>Y<\/code>\u00a0(ho\u1eb7c\u00a0<code>C<\/code>) \u0111\u1ec3 x\u00e1c nh\u1eadn khi h\u1ec7 th\u1ed1ng y\u00eau c\u1ea7u. Sau khi ti\u1ebfn tr\u00ecnh ho\u00e0n t\u1ea5t, b\u1ea1n h\u00e3y ki\u1ec3m tra l\u1ea1i phi\u00ean b\u1ea3n Node.js \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t b\u1eb1ng l\u1ec7nh:<\/p>\n<pre><code>node -v\r\n<\/code><\/pre>\n<p>Th\u00f4ng tin tr\u1ea3 v\u1ec1 s\u1ebd c\u00f3 \u0111\u1ecbnh d\u1ea1ng t\u01b0\u01a1ng t\u1ef1 nh\u01b0 sau (s\u1ed1 phi\u00ean b\u1ea3n c\u1ee5 th\u1ec3 c\u00f3 th\u1ec3 thay \u0111\u1ed5i t\u00f9y thu\u1ed9c v\u00e0o th\u1eddi \u0111i\u1ec3m b\u1ea1n c\u00e0i \u0111\u1eb7t):<\/p>\n<pre><code>v24.13.0\r\n<\/code><\/pre>\n<p>\u0110\u1ec3 qu\u1ea3n l\u00fd c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 package b\u1ed5 sung, b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t th\u00eam\u00a0<code>npm<\/code>\u00a0(Node Package Manager). Th\u00f4ng th\u01b0\u1eddng tr\u00ean m\u1ed9t s\u1ed1 b\u1ea3n ph\u00e2n ph\u1ed1i Ubuntu,\u00a0<code>npm<\/code>\u00a0kh\u00f4ng \u0111i k\u00e8m s\u1eb5n v\u1edbi g\u00f3i\u00a0<code>nodejs<\/code>\u00a0c\u1ee7a h\u1ec7 th\u1ed1ng. B\u1ea1n c\u00e0i \u0111\u1eb7t n\u00f3 b\u1eb1ng l\u1ec7nh:<\/p>\n<pre><code>sudo apt install npm\r\n<\/code><\/pre>\n<p>\u0110\u1ebfn \u0111\u00e2y, b\u1ea1n \u0111\u00e3 ho\u00e0n t\u1ea5t vi\u1ec7c thi\u1ebft l\u1eadp c\u01a1 b\u1ea3n Node.js v\u00e0 npm tr\u1ef1c ti\u1ebfp t\u1eeb kho \u1ee9ng d\u1ee5ng ch\u00ednh th\u1ee9c c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cach-2-Cai-dat-Nodejs-phien-ban-moi-bang-NodeSource-PPA\"><\/span>C\u00e1ch 2: C\u00e0i \u0111\u1eb7t Node.js phi\u00ean b\u1ea3n m\u1edbi b\u1eb1ng NodeSource PPA<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>N\u1ebfu d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n \u0111\u00f2i h\u1ecfi m\u1ed9t phi\u00ean b\u1ea3n Node.js c\u1ee5 th\u1ec3 ho\u1eb7c phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t ch\u01b0a c\u00f3 tr\u00ean kho c\u1ee7a Ubuntu, vi\u1ec7c s\u1eed d\u1ee5ng kho l\u01b0u tr\u1eef PPA (Personal Package Archive) do NodeSource duy tr\u00ec l\u00e0 gi\u1ea3i ph\u00e1p l\u00fd t\u01b0\u1edfng.<\/p>\n<p>\u0110\u1ec3 \u0111\u1ea3m b\u1ea3o an to\u00e0n v\u00e0 t\u01b0\u01a1ng th\u00edch v\u1edbi c\u00e1c c\u01a1 ch\u1ebf b\u1ea3o m\u1eadt m\u1edbi c\u1ee7a Ubuntu, ch\u00fang t\u00f4i khuy\u00ean b\u1ea1n n\u00ean s\u1eed d\u1ee5ng ph\u01b0\u01a1ng th\u1ee9c thi\u1ebft l\u1eadp kh\u00f3a GPG hi\u1ec7n \u0111\u1ea1i thay v\u00ec ch\u1ea1y c\u00e1c script c\u00e0i \u0111\u1eb7t c\u0169 \u0111\u00e3 b\u1ecb khai t\u1eed.<\/p>\n<p>Tr\u01b0\u1edbc ti\u00ean, h\u00e3y c\u00e0i \u0111\u1eb7t c\u00e1c c\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3 t\u1ea3i v\u00e0 b\u1ea3o m\u1eadt:<\/p>\n<pre><code>sudo apt-get update -y\r\nsudo apt-get install -y ca-certificates curl gnupg\r\n<\/code><\/pre>\n<p>T\u1ea1o th\u01b0 m\u1ee5c l\u01b0u tr\u1eef kh\u00f3a b\u1ea3o m\u1eadt GPG v\u00e0 t\u1ea3i kh\u00f3a c\u1ee7a NodeSource v\u1ec1 h\u1ec7 th\u1ed1ng:<\/p>\n<pre><code>sudo mkdir -p \/etc\/apt\/keyrings\r\ncurl -fsSL https:\/\/deb.nodesource.com\/gpgkey\/nodesource-repo.gpg.key | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/nodesource.gpg\r\n<\/code><\/pre>\n<p>Thi\u1ebft l\u1eadp phi\u00ean b\u1ea3n Node.js mong mu\u1ed1n (v\u00ed d\u1ee5 d\u01b0\u1edbi \u0111\u00e2y thi\u1ebft l\u1eadp c\u00e0i \u0111\u1eb7t phi\u00ean b\u1ea3n Node.js 20):<\/p>\n<pre><code>NODE_MAJOR=20\r\necho \"deb [signed-by=\/etc\/apt\/keyrings\/nodesource.gpg] https:\/\/deb.nodesource.com\/node_$NODE_MAJOR.x nodistro main\" | sudo tee \/etc\/apt\/sources.list.d\/nodesource.list\r\n<\/code><\/pre>\n<p><em>(L\u01b0u \u00fd: B\u1ea1n c\u00f3 th\u1ec3 thay \u0111\u1ed5i gi\u00e1 tr\u1ecb\u00a0<code>NODE_MAJOR=20<\/code>\u00a0th\u00e0nh\u00a0<code>22<\/code>,\u00a0<code>24<\/code>\u00a0ho\u1eb7c phi\u00ean b\u1ea3n kh\u00e1c t\u00f9y theo nhu c\u1ea7u th\u1ef1c t\u1ebf c\u1ee7a d\u1ef1 \u00e1n).<\/em><\/p>\n<p>C\u1eadp nh\u1eadt l\u1ea1i danh s\u00e1ch g\u00f3i v\u00e0 ti\u1ebfn h\u00e0nh c\u00e0i \u0111\u1eb7t Node.js:<\/p>\n<pre><code>sudo apt-get update\r\nsudo apt-get install -y nodejs\r\n<\/code><\/pre>\n<p>Sau khi ho\u00e0n t\u1ea5t, x\u00e1c nh\u1eadn l\u1ea1i phi\u00ean b\u1ea3n \u0111\u00e3 c\u00e0i \u0111\u1eb7t th\u00e0nh c\u00f4ng:<\/p>\n<pre><code>node -v\r\nnpm -v\r\n<\/code><\/pre>\n<p>S\u1eed d\u1ee5ng NodeSource PPA s\u1ebd t\u1ef1 \u0111\u1ed9ng c\u00e0i \u0111\u1eb7t c\u1ea3\u00a0<code>node<\/code>\u00a0v\u00e0\u00a0<code>npm<\/code>\u00a0\u0111\u1ed3ng b\u1ed9 v\u1edbi nhau, b\u1ea1n kh\u00f4ng c\u1ea7n c\u00e0i th\u00eam\u00a0<code>npm<\/code>\u00a0th\u1ee7 c\u00f4ng nh\u01b0 \u1edf C\u00e1ch 1.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cach-3-Su-dung-NVM-Node-Version-Manager-de-quan-ly-nhieu-phien-ban\"><\/span>C\u00e1ch 3: S\u1eed d\u1ee5ng NVM (Node Version Manager) \u0111\u1ec3 qu\u1ea3n l\u00fd nhi\u1ec1u phi\u00ean b\u1ea3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0110\u1ed1i v\u1edbi c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean \u0111ang v\u1eadn h\u00e0nh nhi\u1ec1u d\u1ef1 \u00e1n kh\u00e1c nhau tr\u00ean c\u00f9ng m\u1ed9t m\u00e1y ch\u1ee7, vi\u1ec7c m\u1ed7i d\u1ef1 \u00e1n y\u00eau c\u1ea7u m\u1ed9t phi\u00ean b\u1ea3n Node.js ri\u00eang bi\u1ec7t l\u00e0 \u0111i\u1ec1u r\u1ea5t th\u01b0\u1eddng g\u1eb7p. NVM (Node Version Manager) gi\u1ea3i quy\u1ebft tri\u1ec7t \u0111\u1ec3 v\u1ea5n \u0111\u1ec1 n\u00e0y b\u1eb1ng c\u00e1ch cho ph\u00e9p c\u00e0i \u0111\u1eb7t v\u00e0 chuy\u1ec3n \u0111\u1ed5i qua l\u1ea1i gi\u1eefa h\u00e0ng lo\u1ea1t phi\u00ean b\u1ea3n Node.js m\u1ed9t c\u00e1ch linh ho\u1ea1t.<\/p>\n<p>Truy c\u1eadp trang ch\u1ee7 d\u1ef1 \u00e1n NVM tr\u00ean GitHub \u0111\u1ec3 l\u1ea5y \u0111o\u1ea1n m\u00e3 c\u00e0i \u0111\u1eb7t m\u1edbi nh\u1ea5t, ho\u1eb7c ch\u1ea1y tr\u1ef1c ti\u1ebfp l\u1ec7nh d\u01b0\u1edbi \u0111\u00e2y (phi\u00ean b\u1ea3n v0.40.3 t\u1ea1i th\u1eddi \u0111i\u1ec3m vi\u1ebft b\u00e0i):<\/p>\n<pre><code>curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.40.3\/install.sh | bash\r\n<\/code><\/pre>\n<p>Sau khi script ch\u1ea1y xong, \u0111\u1ec3 k\u00edch ho\u1ea1t nvm ngay l\u1eadp t\u1ee9c trong phi\u00ean l\u00e0m vi\u1ec7c hi\u1ec7n t\u1ea1i m\u00e0 kh\u00f4ng c\u1ea7n kh\u1edfi \u0111\u1ed9ng l\u1ea1i Terminal, h\u00e3y n\u1ea1p l\u1ea1i c\u1ea5u h\u00ecnh file\u00a0<code>.bashrc<\/code>:<\/p>\n<pre><code>source ~\/.bashrc\r\n<\/code><\/pre>\n<p>Ki\u1ec3m tra danh s\u00e1ch to\u00e0n b\u1ed9 c\u00e1c phi\u00ean b\u1ea3n Node.js c\u00f3 s\u1eb5n tr\u00ean h\u1ec7 th\u1ed1ng m\u00e1y ch\u1ee7 c\u1ee7a Node.js:<\/p>\n<pre><code>nvm list-remote\r\n<\/code><\/pre>\n<p>B\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c m\u1ed9t danh s\u00e1ch r\u1ea5t d\u00e0i bao g\u1ed3m c\u1ea3 c\u00e1c phi\u00ean b\u1ea3n LTS (Long-Term Support) \u1ed5n \u0111\u1ecbnh nh\u1ea5t. \u0110\u1ec3 c\u00e0i \u0111\u1eb7t m\u1ed9t phi\u00ean b\u1ea3n c\u1ee5 th\u1ec3 (v\u00ed d\u1ee5 b\u1ea3n v24.13.0), b\u1ea1n ch\u1ea1y l\u1ec7nh:<\/p>\n<pre><code>nvm install v24.13.0\r\n<\/code><\/pre>\n<p>Ho\u1eb7c t\u1ea3i b\u1ea3n LTS \u1ed5n \u0111\u1ecbnh nh\u1ea5t b\u1eb1ng b\u00ed danh (alias):<\/p>\n<pre><code>nvm install --lts\r\n<\/code><\/pre>\n<p>\u0110\u1ec3 xem danh s\u00e1ch t\u1ea5t c\u1ea3 phi\u00ean b\u1ea3n Node.js \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t tr\u1ef1c ti\u1ebfp tr\u00ean m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n:<\/p>\n<pre><code>nvm list\r\n<\/code><\/pre>\n<p>\u0110\u1ec3 chuy\u1ec3n \u0111\u1ed5i sang s\u1eed d\u1ee5ng m\u1ed9t phi\u00ean b\u1ea3n kh\u00e1c \u0111\u00e3 c\u00e0i \u0111\u1eb7t:<\/p>\n<pre><code>nvm use v20.10.0\r\n<\/code><\/pre>\n<p>B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 \u0111\u1eb7t phi\u00ean b\u1ea3n m\u1eb7c \u0111\u1ecbnh cho m\u1ed7i l\u1ea7n \u0111\u0103ng nh\u1eadp m\u1edbi v\u00e0o h\u1ec7 th\u1ed1ng m\u00e1y ch\u1ee7 b\u1eb1ng l\u1ec7nh:<\/p>\n<pre><code>nvm alias default v20.10.0\r\n<\/code><\/pre>\n<p>S\u1eed d\u1ee5ng NVM gi\u00fap b\u1ea1n c\u00f4 l\u1eadp ho\u00e0n to\u00e0n m\u00f4i tr\u01b0\u1eddng ch\u1ea1y Node.js c\u1ee7a t\u1eebng user, tr\u00e1nh vi\u1ec7c xung \u0111\u1ed9t th\u01b0 vi\u1ec7n h\u1ec7 th\u1ed1ng v\u00e0 h\u1ea1n ch\u1ebf t\u1ed1i \u0111a c\u00e1c l\u1ed7i ph\u00e2n quy\u1ec1n nguy hi\u1ec3m.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cach-4-Bien-dich-Nodejs-truc-tiep-tu-Ma-nguon-Danh-cho-Chuyen-gia\"><\/span>C\u00e1ch 4: Bi\u00ean d\u1ecbch Node.js tr\u1ef1c ti\u1ebfp t\u1eeb M\u00e3 ngu\u1ed3n (D\u00e0nh cho Chuy\u00ean gia)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>N\u1ebfu b\u1ea1n c\u1ea7n t\u1ed1i \u01b0u hi\u1ec7u n\u0103ng ch\u1ea1y Node.js \u1edf m\u1ee9c t\u1ed1i \u0111a b\u1eb1ng c\u00e1c c\u1edd t\u1ed1i \u01b0u h\u00f3a bi\u00ean d\u1ecbch c\u1ee5 th\u1ec3 c\u1ee7a CPU, ho\u1eb7c c\u1ea7n t\u00edch h\u1ee3p th\u00eam c\u00e1c t\u00ednh n\u0103ng t\u00f9y ch\u1ec9nh v\u00e0o nh\u00e2n c\u1ee7a Node.js, ph\u01b0\u01a1ng ph\u00e1p t\u1ef1 bi\u00ean d\u1ecbch t\u1eeb m\u00e3 ngu\u1ed3n (Source Code) l\u00e0 s\u1ef1 l\u1ef1a ch\u1ecdn duy nh\u1ea5t.<\/p>\n<div class=\"info-box\"><strong>\u26a0\ufe0f Khuy\u1ebfn c\u00e1o t\u00e0i nguy\u00ean ph\u1ea7n c\u1ee9ng:<\/strong> Ti\u1ebfn tr\u00ecnh bi\u00ean d\u1ecbch m\u00e3 ngu\u1ed3n \u0111\u00f2i h\u1ecfi t\u00e0i nguy\u00ean CPU v\u00e0 RAM c\u1ef1c k\u1ef3 l\u1edbn. N\u1ebfu m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n c\u00f3 c\u1ea5u h\u00ecnh qu\u00e1 y\u1ebfu, ti\u1ebfn tr\u00ecnh bi\u00ean d\u1ecbch c\u00f3 th\u1ec3 b\u1ecb treo ho\u1eb7c crash gi\u1eefa ch\u1eebng. H\u00e3y ch\u1eafc ch\u1eafn r\u1eb1ng b\u1ea1n \u0111ang s\u1eed d\u1ee5ng m\u1ed9t c\u1ea5u h\u00ecnh m\u00e1y ch\u1ee7 \u0111\u1ee7 m\u1ea1nh m\u1ebd. B\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o <strong><a href=\"https:\/\/interdata.vn\/thue-vps\/#pricing\" target=\"_blank\" rel=\"noopener\">b\u1ea3ng gi\u00e1 d\u1ecbch v\u1ee5 n\u00e2ng c\u1ea5p c\u1ea5u h\u00ecnh m\u00e1y ch\u1ee7 \u1ea3o<\/a><\/strong> linh ho\u1ea1t t\u1ea1i InterData \u0111\u1ec3 \u0111\u00e1p \u1ee9ng t\u1ed1t ti\u1ebfn tr\u00ecnh bi\u00ean d\u1ecbch n\u00e0y.<\/div>\n<p>\u0110\u1ea7u ti\u00ean, c\u00e0i \u0111\u1eb7t to\u00e0n b\u1ed9 c\u00e1c c\u00f4ng c\u1ee5 bi\u00ean d\u1ecbch b\u1eaft bu\u1ed9c tr\u00ean Ubuntu:<\/p>\n<pre><code>sudo apt update\r\nsudo apt install build-essential python3 g++ make pkg-config\r\n<\/code><\/pre>\n<p>Truy c\u1eadp trang t\u1ea3i xu\u1ed1ng ch\u00ednh th\u1ee9c c\u1ee7a Node.js \u0111\u1ec3 l\u1ea5y link tarball m\u00e3 ngu\u1ed3n c\u1ee7a phi\u00ean b\u1ea3n b\u1ea1n mu\u1ed1n c\u00e0i \u0111\u1eb7t. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 v\u00ed d\u1ee5 t\u1ea3i b\u1ea3n v24.13.0:<\/p>\n<pre><code>wget https:\/\/nodejs.org\/dist\/v24.13.0\/node-v24.13.0.tar.gz\r\n<\/code><\/pre>\n<p>Gi\u1ea3i n\u00e9n th\u01b0 m\u1ee5c m\u00e3 ngu\u1ed3n v\u1eeba t\u1ea3i xu\u1ed1ng h\u1ec7 th\u1ed1ng:<\/p>\n<pre><code>tar -xzf node-v24.13.0.tar.gz\r\ncd node-v24.13.0\r\n<\/code><\/pre>\n<p>Ch\u1ea1y c\u1ea5u h\u00ecnh m\u00f4i tr\u01b0\u1eddng bi\u00ean d\u1ecbch. M\u1eb7c \u0111\u1ecbnh Node.js s\u1ebd \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t v\u00e0o h\u1ec7 th\u1ed1ng t\u1ea1i\u00a0<code>\/usr\/local<\/code>. N\u1ebfu b\u1ea1n mu\u1ed1n ch\u1ec9 \u0111\u1ecbnh th\u01b0 m\u1ee5c c\u00e0i \u0111\u1eb7t ri\u00eang \u0111\u1ec3 d\u1ec5 qu\u1ea3n l\u00fd, h\u00e3y th\u00eam c\u1edd\u00a0<code>--prefix<\/code>:<\/p>\n<pre><code>.\/configure --prefix=$HOME\/.local\/node-v24.13.0\r\n<\/code><\/pre>\n<p>Ti\u1ebfn h\u00e0nh bi\u00ean d\u1ecbch m\u00e3 ngu\u1ed3n. \u0110\u1ec3 t\u0103ng t\u1ed1c \u0111\u1ed9 bi\u00ean d\u1ecbch b\u1eb1ng c\u00e1ch t\u1eadn d\u1ee5ng to\u00e0n b\u1ed9 s\u1ed1 nh\u00e2n lu\u1ed3ng CPU c\u1ee7a m\u00e1y ch\u1ee7, h\u00e3y s\u1eed d\u1ee5ng c\u1edd\u00a0<code>-j<\/code>\u00a0k\u1ebft h\u1ee3p v\u1edbi s\u1ed1 l\u01b0\u1ee3ng nh\u00e2n th\u1ef1c t\u1ebf:<\/p>\n<pre><code>make -j$(nproc)\r\n<\/code><\/pre>\n<p><em>(Qu\u00e1 tr\u00ecnh n\u00e0y c\u00f3 th\u1ec3 m\u1ea5t t\u1eeb 15 ph\u00fat \u0111\u1ebfn h\u01a1n 1 ti\u1ebfng t\u00f9y v\u00e0o s\u1ee9c m\u1ea1nh ph\u1ea7n c\u1ee9ng m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n).<\/em><\/p>\n<p>Sau khi ho\u00e0n th\u00e0nh ti\u1ebfn tr\u00ecnh build, ch\u1ea1y th\u1eed c\u00e1c b\u00e0i test \u0111\u1ec3 ki\u1ec3m tra t\u00ednh \u1ed5n \u0111\u1ecbnh:<\/p>\n<pre><code>make test\r\n<\/code><\/pre>\n<p>N\u1ebfu kh\u00f4ng xu\u1ea5t hi\u1ec7n l\u1ed7i nghi\u00eam tr\u1ecdng, ti\u1ebfn h\u00e0nh c\u00e0i \u0111\u1eb7t ch\u01b0\u01a1ng tr\u00ecnh l\u00ean h\u1ec7 th\u1ed1ng m\u00e1y ch\u1ee7:<\/p>\n<pre><code>make install\r\n<\/code><\/pre>\n<p>Tr\u01b0\u1eddng h\u1ee3p b\u1ea1n \u0111\u00e3 t\u00f9y ch\u1ec9nh th\u01b0 m\u1ee5c c\u00e0i \u0111\u1eb7t ri\u00eang (<code>--prefix<\/code>\u00a0\u1edf b\u01b0\u1edbc tr\u00ean), h\u00e3y th\u00eam \u0111\u01b0\u1eddng d\u1eabn c\u1ee7a th\u01b0 m\u1ee5c\u00a0<code>bin<\/code>\u00a0v\u00e0o bi\u1ebfn m\u00f4i tr\u01b0\u1eddng h\u1ec7 th\u1ed1ng trong file\u00a0<code>.bashrc<\/code>\u00a0\u0111\u1ec3 h\u1ec7 th\u1ed1ng hi\u1ec3u \u0111\u01b0\u1ee3c c\u00e1c l\u1ec7nh th\u1ef1c thi\u00a0<code>node<\/code>\u00a0v\u00e0\u00a0<code>npm<\/code>:<\/p>\n<pre><code>nano ~\/.bashrc\r\n<\/code><\/pre>\n<p>Th\u00eam d\u00f2ng sau v\u00e0o cu\u1ed1i file\u00a0<code>.bashrc<\/code>:<\/p>\n<pre><code>export PATH=\"$HOME\/.local\/node-v24.13.0\/bin:$PATH\"\r\n<\/code><\/pre>\n<p>L\u01b0u file l\u1ea1i v\u00e0 n\u1ea1p l\u1ea1i c\u1ea5u h\u00ecnh:<\/p>\n<pre><code>source ~\/.bashrc\r\n<\/code><\/pre>\n<p>Cu\u1ed1i c\u00f9ng, d\u1ecdn d\u1eb9p c\u00e1c th\u01b0 m\u1ee5c gi\u1ea3i n\u00e9n t\u1ea1m th\u1eddi \u0111\u1ec3 ti\u1ebft ki\u1ec7m kh\u00f4ng gian l\u01b0u tr\u1eef cho \u1ed5 c\u1ee9ng:<\/p>\n<pre><code>cd ..\r\nrm node-v24.13.0.tar.gz\r\nrm -rf node-v24.13.0\r\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Cach-go-bo-hoan-toan-Nodejs-khoi-Ubuntu\"><\/span>C\u00e1ch g\u1ee1 b\u1ecf ho\u00e0n to\u00e0n Node.js kh\u1ecfi Ubuntu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>T\u00f9y v\u00e0o ph\u01b0\u01a1ng th\u1ee9c b\u1ea1n s\u1eed d\u1ee5ng \u0111\u1ec3 c\u00e0i \u0111\u1eb7t l\u00fac \u0111\u1ea7u, c\u00e1ch g\u1ee1 b\u1ecf c\u0169ng s\u1ebd kh\u00e1c nhau:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"1-Go-bo-phien-ban-cai-dat-qua-Apt-Default-hoac-NodeSource\"><\/span>1. G\u1ee1 b\u1ecf phi\u00ean b\u1ea3n c\u00e0i \u0111\u1eb7t qua Apt (Default ho\u1eb7c NodeSource)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>N\u1ebfu ch\u1ec9 c\u1ea7n g\u1ee1 b\u1ecf ph\u1ea7n m\u1ec1m v\u00e0 gi\u1eef l\u1ea1i c\u00e1c file c\u1ea5u h\u00ecnh t\u1ea1m:<\/p>\n<pre><code>sudo apt remove nodejs\r\n<\/code><\/pre>\n<p>\u0110\u1ec3 d\u1ecdn d\u1eb9p s\u1ea1ch s\u1ebd to\u00e0n b\u1ed9 c\u00e1c file c\u1ea5u h\u00ecnh li\u00ean quan \u0111\u1ebfn Node.js tr\u00ean h\u1ec7 th\u1ed1ng:<\/p>\n<pre><code>sudo apt purge nodejs\r\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"2-Go-bo-phien-ban-quan-ly-boi-NVM\"><\/span>2. G\u1ee1 b\u1ecf phi\u00ean b\u1ea3n qu\u1ea3n l\u00fd b\u1edfi NVM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tr\u01b0\u1edbc khi g\u1ee1 b\u1ecf m\u1ed9t phi\u00ean b\u1ea3n c\u1ee5 th\u1ec3, h\u00e3y ki\u1ec3m tra xem n\u00f3 c\u00f3 \u0111ang ho\u1ea1t \u0111\u1ed9ng hay kh\u00f4ng b\u1eb1ng l\u1ec7nh\u00a0<code>nvm current<\/code>. N\u1ebfu n\u00f3 \u0111ang ho\u1ea1t \u0111\u1ed9ng, b\u1ea1n c\u1ea7n t\u1ea1m th\u1eddi h\u1ee7y k\u00edch ho\u1ea1t NVM:<\/p>\n<pre><code>nvm deactivate\r\n<\/code><\/pre>\n<p>Sau \u0111\u00f3 ti\u1ebfn h\u00e0nh g\u1ee1 b\u1ecf phi\u00ean b\u1ea3n kh\u00f4ng mong mu\u1ed1n:<\/p>\n<pre><code>nvm uninstall &lt;phi\u00ean_b\u1ea3n_node&gt;\r\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Cac-loi-thuong-gap-va-cach-xu-ly-nhanh-chong\"><\/span>C\u00e1c l\u1ed7i th\u01b0\u1eddng g\u1eb7p v\u00e0 c\u00e1ch x\u1eed l\u00fd nhanh ch\u00f3ng<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1-Loi-phan-quyen-khi-cai-dat-Package-Global-bang-NPM-Permission-Denied\"><\/span>1. L\u1ed7i ph\u00e2n quy\u1ec1n khi c\u00e0i \u0111\u1eb7t Package Global b\u1eb1ng NPM (<code>Permission Denied<\/code>)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Nguy\u00ean nh\u00e2n:<\/strong>\u00a0L\u1ed7i x\u1ea3y ra khi b\u1ea1n c\u00e0i \u0111\u1eb7t Node.js h\u1ec7 th\u1ed1ng qua\u00a0<code>apt<\/code>. Khi ch\u1ea1y l\u1ec7nh\u00a0<code>npm install -g &lt;package-name&gt;<\/code>, NPM s\u1ebd ghi d\u1eef li\u1ec7u tr\u1ef1c ti\u1ebfp v\u00e0o c\u00e1c th\u01b0 m\u1ee5c h\u1ec7 th\u1ed1ng b\u1ea3o m\u1eadt (nh\u01b0\u00a0<code>\/usr\/local\/lib\/node_modules<\/code>) &#8211; n\u01a1i y\u00eau c\u1ea7u quy\u1ec1n qu\u1ea3n tr\u1ecb cao nh\u1ea5t.<\/p>\n<p><strong>C\u00e1ch kh\u1eafc ph\u1ee5c:<\/strong><\/p>\n<ul>\n<li><em>C\u00e1ch 1:<\/em>\u00a0(H\u1ea1n ch\u1ebf khuy\u00ean d\u00f9ng v\u00ec r\u1ee7i ro b\u1ea3o m\u1eadt): Ch\u1ea1y l\u1ec7nh v\u1edbi quy\u1ec1n qu\u1ea3n tr\u1ecb\u00a0<code>sudo npm install -g &lt;package-name&gt;<\/code>.<\/li>\n<li><em>C\u00e1ch 2:<\/em>\u00a0Kh\u1eafc ph\u1ee5c tri\u1ec7t \u0111\u1ec3 b\u1eb1ng c\u00e1ch thay \u0111\u1ed5i quy\u1ec1n s\u1edf h\u1eefu th\u01b0 m\u1ee5c NPM cho t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i c\u1ee7a b\u1ea1n:<\/li>\n<\/ul>\n<pre><code>sudo chown -R $USER:$(whoami) \/usr\/local\/{lib\/node_modules,bin,share\/man} &amp;&amp; sudo chown -R $USER:$(whoami) ~\/.npm\r\n<\/code><\/pre>\n<ul>\n<li><em>C\u00e1ch 3:<\/em>\u00a0S\u1eed d\u1ee5ng NVM \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Node.js. Do NVM c\u00e0i \u0111\u1eb7t \u0111\u1ed9c l\u1eadp b\u00ean trong th\u01b0 m\u1ee5c c\u00e1 nh\u00e2n c\u1ee7a user, b\u1ea1n ho\u00e0n to\u00e0n c\u00f3 th\u1ec3 ch\u1ea1y c\u00e0i \u0111\u1eb7t global tho\u1ea3i m\u00e1i m\u00e0 kh\u00f4ng lo ng\u1ea1i v\u1ea5n \u0111\u1ec1 ph\u00e2n quy\u1ec1n.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"2-Loi-khong-tim-thay-lenh-NVM-sau-khi-cai-dat-Command-nvm-not-found\"><\/span>2. L\u1ed7i kh\u00f4ng t\u00ecm th\u1ea5y l\u1ec7nh NVM sau khi c\u00e0i \u0111\u1eb7t (<code>Command 'nvm' not found<\/code>)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Nguy\u00ean nh\u00e2n:<\/strong>\u00a0\u0110\u01b0\u1eddng d\u1eabn th\u1ef1c thi c\u1ee7a NVM ch\u01b0a \u0111\u01b0\u1ee3c n\u1ea1p v\u00e0o bi\u1ebfn m\u00f4i tr\u01b0\u1eddng c\u1ee7a Terminal hi\u1ec7n t\u1ea1i.<\/p>\n<p><strong>C\u00e1ch kh\u1eafc ph\u1ee5c:<\/strong>\u00a0Th\u00eam th\u1ee7 c\u00f4ng \u0111o\u1ea1n m\u00e3 kh\u1edfi t\u1ea1o nvm v\u00e0o file c\u1ea5u h\u00ecnh shell c\u1ee7a b\u1ea1n (nh\u01b0\u00a0<code>.bashrc<\/code>\u00a0ho\u1eb7c\u00a0<code>.zshrc<\/code>):<\/p>\n<pre><code>source ~\/.nvm\/nvm.sh\r\n<\/code><\/pre>\n<p>N\u1ea1p l\u1ea1i file c\u1ea5u h\u00ecnh b\u1eb1ng l\u1ec7nh\u00a0<code>source ~\/.bashrc<\/code>\u00a0ho\u1eb7c \u0111\u01a1n gi\u1ea3n l\u00e0 t\u1eaft Terminal \u0111i v\u00e0 m\u1edf l\u1ea1i m\u1ed9t phi\u00ean l\u00e0m vi\u1ec7c m\u1edbi.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3-Xung-dot-giua-phien-ban-Nodejs-cai-bang-apt-va-nvm\"><\/span>3. Xung \u0111\u1ed9t gi\u1eefa phi\u00ean b\u1ea3n Node.js c\u00e0i b\u1eb1ng\u00a0<code>apt<\/code>\u00a0v\u00e0\u00a0<code>nvm<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Nguy\u00ean nh\u00e2n:<\/strong>\u00a0B\u1ea1n v\u1eeba c\u00e0i \u0111\u1eb7t Node.js qua tr\u00ecnh qu\u1ea3n l\u00fd h\u1ec7 th\u1ed1ng\u00a0<code>apt<\/code>, v\u1eeba c\u00e0i phi\u00ean b\u1ea3n kh\u00e1c qua\u00a0<code>nvm<\/code>. Khi ch\u1ea1y l\u1ec7nh\u00a0<code>node -v<\/code>, h\u1ec7 th\u1ed1ng s\u1ebd b\u1ed1i r\u1ed1i kh\u00f4ng bi\u1ebft n\u00ean g\u1ecdi phi\u00ean b\u1ea3n n\u00e0o, d\u1eabn \u0111\u1ebfn ch\u1ea1y sai phi\u00ean b\u1ea3n d\u1ef1 \u00e1n y\u00eau c\u1ea7u ho\u1eb7c g\u00e2y l\u1ed7i bi\u00ean d\u1ecbch package.<\/p>\n<p><strong>C\u00e1ch kh\u1eafc ph\u1ee5c:<\/strong>\u00a0L\u1eddi khuy\u00ean c\u1ee7a ch\u00fang t\u00f4i l\u00e0 h\u00e3y \u0111\u1ed3ng nh\u1ea5t m\u00f4i tr\u01b0\u1eddng. N\u1ebfu \u0111\u00e3 d\u00f9ng NVM \u0111\u1ec3 qu\u1ea3n l\u00fd d\u1ef1 \u00e1n, h\u00e3y x\u00f3a b\u1ecf ho\u00e0n to\u00e0n phi\u00ean b\u1ea3n Node c\u00e0i qua\u00a0<code>apt<\/code>\u00a0\u0111\u1ec3 tr\u00e1nh xung \u0111\u1ed9t:<\/p>\n<pre><code>sudo apt purge nodejs\r\nnvm install node\r\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Cau-hoi-thuong-gap-FAQs\"><\/span>C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQs)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1-Phuong-phap-cai-dat-Nodejs-tot-nhat-tren-Ubuntu-la-gi\"><\/span>1. Ph\u01b0\u01a1ng ph\u00e1p c\u00e0i \u0111\u1eb7t Node.js t\u1ed1t nh\u1ea5t tr\u00ean Ubuntu l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>L\u1ef1a ch\u1ecdn ph\u01b0\u01a1ng ph\u00e1p t\u1ed1i \u01b0u t\u00f9y thu\u1ed9c ho\u00e0n to\u00e0n v\u00e0o nhu c\u1ea7u s\u1eed d\u1ee5ng th\u1ef1c t\u1ebf c\u1ee7a b\u1ea1n:<\/p>\n<ul>\n<li><strong>\u0110\u1ec3 tri\u1ec3n khai nhanh ch\u00f3ng &amp; \u1ed5n \u0111\u1ecbnh:<\/strong>\u00a0C\u00e0i \u0111\u1eb7t qua kho \u1ee9ng d\u1ee5ng m\u1eb7c \u0111\u1ecbnh\u00a0<code>apt<\/code>\u00a0l\u00e0 l\u1ef1a ch\u1ecdn \u0111\u01a1n gi\u1ea3n nh\u1ea5t.<\/li>\n<li><strong>\u0110\u1ec3 ch\u1ea1y c\u00e1c phi\u00ean b\u1ea3n Node.js m\u1edbi nh\u1ea5t (Khuy\u00ean d\u00f9ng cho ph\u1ea7n l\u1edbn ng\u01b0\u1eddi d\u00f9ng):<\/strong>\u00a0S\u1eed d\u1ee5ng kho l\u01b0u tr\u1eef NodeSource PPA \u0111\u1ec3 v\u1eeba \u0111\u1ea3m b\u1ea3o t\u00ednh c\u1eadp nh\u1eadt v\u1eeba d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd th\u00f4ng qua\u00a0<code>apt<\/code>.<\/li>\n<li><strong>D\u00e0nh cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m:<\/strong>\u00a0Node Version Manager (NVM) l\u00e0 c\u00f4ng c\u1ee5 t\u1ed1i \u01b0u nh\u1ea5t v\u00ec n\u00f3 cho ph\u00e9p c\u00e0i \u0111\u1eb7t v\u00e0 chuy\u1ec3n \u0111\u1ed5i linh ho\u1ea1t gi\u1eefa nhi\u1ec1u phi\u00ean b\u1ea3n Node.js kh\u00e1c nhau m\u00e0 kh\u00f4ng s\u1ee3 xung \u0111\u1ed9t m\u00f4i tr\u01b0\u1eddng.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"2-Bo-cai-dat-Nodejs-co-di-kem-trinh-quan-ly-goi-npm-khong\"><\/span>2. B\u1ed9 c\u00e0i \u0111\u1eb7t Node.js c\u00f3 \u0111i k\u00e8m tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i npm kh\u00f4ng?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00f3. H\u1ea7u h\u1ebft c\u00e1c ph\u01b0\u01a1ng ph\u00e1p c\u00e0i \u0111\u1eb7t ph\u1ed5 bi\u1ebfn (nh\u01b0 NodeSource PPA, c\u00e0i \u0111\u1eb7t qua NVM, ho\u1eb7c t\u1ef1 bi\u00ean d\u1ecbch m\u00e3 ngu\u1ed3n) \u0111\u1ec1u t\u1ef1 \u0111\u1ed9ng t\u00edch h\u1ee3p tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i\u00a0<code>npm<\/code>\u00a0\u0111i k\u00e8m v\u1edbi Node.js. N\u1ebfu c\u00e0i \u0111\u1eb7t t\u1eeb kho m\u1eb7c \u0111\u1ecbnh c\u1ee7a Ubuntu qua l\u1ec7nh\u00a0<code>sudo apt install nodejs<\/code>, b\u1ea1n ch\u1ec9 c\u1ea7n ch\u1ea1y th\u00eam l\u1ec7nh\u00a0<code>sudo apt install npm<\/code>\u00a0\u0111\u1ec3 trang b\u1ecb \u0111\u1ea7y \u0111\u1ee7 c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd n\u00e0y.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3-Lam-the-nao-de-cap-nhat-phien-ban-Nodejs-moi-tren-Ubuntu\"><\/span>3. L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 c\u1eadp nh\u1eadt phi\u00ean b\u1ea3n Node.js m\u1edbi tr\u00ean Ubuntu?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Quy tr\u00ecnh c\u1eadp nh\u1eadt ph\u1ee5 thu\u1ed9c v\u00e0o ph\u01b0\u01a1ng th\u1ee9c b\u1ea1n c\u00e0i \u0111\u1eb7t ban \u0111\u1ea7u:<\/p>\n<ul>\n<li><strong>N\u1ebfu c\u00e0i qua\u00a0<code>apt<\/code>\u00a0(Default ho\u1eb7c NodeSource):<\/strong>\u00a0B\u1ea1n ch\u1ec9 c\u1ea7n c\u1eadp nh\u1eadt l\u1ea1i c\u1ea5u h\u00ecnh script NodeSource cho phi\u00ean b\u1ea3n m\u1edbi (v\u00ed d\u1ee5 thay \u0111\u1ed5i gi\u00e1 tr\u1ecb c\u1ea5u h\u00ecnh t\u1eeb b\u1ea3n\u00a0<code>20.x<\/code>\u00a0sang\u00a0<code>22.x<\/code>), c\u1eadp nh\u1eadt l\u1ea1i cache h\u1ec7 th\u1ed1ng r\u1ed3i ch\u1ea1y l\u1ec7nh n\u00e2ng c\u1ea5p:<\/li>\n<\/ul>\n<pre><code>sudo apt update\r\nsudo apt install --only-upgrade nodejs\r\n<\/code><\/pre>\n<ul>\n<li><strong>N\u1ebfu c\u00e0i qua NVM:<\/strong>\u00a0B\u1ea1n ch\u1ec9 vi\u1ec7c t\u1ea3i phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t v\u00e0 \u0111\u1eb7t n\u00f3 l\u00e0m m\u1eb7c \u0111\u1ecbnh:<\/li>\n<\/ul>\n<pre><code>nvm install &lt;phi\u00ean_b\u1ea3n_m\u1edbi&gt;\r\nnvm alias default &lt;phi\u00ean_b\u1ea3n_m\u1edbi&gt;\r\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"4-Toi-co-the-cai-dat-song-song-nhieu-phien-ban-Nodejs-tren-cung-mot-may-chu-khong\"><\/span>4. T\u00f4i c\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t song song nhi\u1ec1u phi\u00ean b\u1ea3n Node.js tr\u00ean c\u00f9ng m\u1ed9t m\u00e1y ch\u1ee7 kh\u00f4ng?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00f3, \u0111i\u1ec1u n\u00e0y ho\u00e0n to\u00e0n kh\u1ea3 thi v\u00e0 c\u1ef1c k\u1ef3 ph\u1ed5 bi\u1ebfn trong m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf. S\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 NVM (Node Version Manager) l\u00e0 c\u00e1ch t\u1ed1t nh\u1ea5t \u0111\u1ec3 b\u1ea1n c\u00e0i \u0111\u1eb7t, qu\u1ea3n l\u00fd v\u00e0 chuy\u1ec3n \u0111\u1ed5i qua l\u1ea1i gi\u1eefa h\u00e0ng lo\u1ea1t phi\u00ean b\u1ea3n Node.js kh\u00e1c nhau m\u00e0 kh\u00f4ng lo ng\u1ea1i r\u1ee7i ro xung \u0111\u1ed9t t\u00e0i nguy\u00ean hay ph\u00e2n quy\u1ec1n h\u1ec7 th\u1ed1ng.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"5-Cai-dat-cac-goi-Nodejs-tu-kho-luu-tru-cua-NodeSource-co-an-toan-khong\"><\/span>5. C\u00e0i \u0111\u1eb7t c\u00e1c g\u00f3i Node.js t\u1eeb kho l\u01b0u tr\u1eef c\u1ee7a NodeSource c\u00f3 an to\u00e0n kh\u00f4ng?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>R\u1ea5t an to\u00e0n. NodeSource l\u00e0 m\u1ed9t doanh nghi\u1ec7p c\u00f4ng ngh\u1ec7 l\u1edbn, uy t\u00edn v\u00e0 c\u00f3 \u0111\u00f3ng g\u00f3p l\u00e2u n\u0103m trong vi\u1ec7c x\u00e2y d\u1ef1ng c\u00e1c c\u00f4ng c\u1ee5, gi\u1ea3i ph\u00e1p doanh nghi\u1ec7p cho c\u1ed9ng \u0111\u1ed3ng Node.js. C\u00e1c g\u00f3i c\u00e0i \u0111\u1eb7t \u0111\u01b0\u1ee3c ph\u00e2n ph\u1ed1i qua NodeSource \u0111\u1ec1u \u0111\u01b0\u1ee3c k\u00fd s\u1ed1 b\u1ea3o m\u1eadt b\u1eb1ng kh\u00f3a GPG \u0111\u00e1ng tin c\u1eady, gi\u00fap h\u1ec7 th\u1ed1ng Ubuntu c\u1ee7a b\u1ea1n ki\u1ec3m tra t\u00ednh to\u00e0n v\u1eb9n v\u00e0 x\u00e1c th\u1ef1c ngu\u1ed3n g\u1ed1c d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch an to\u00e0n nh\u1ea5t tr\u01b0\u1edbc khi c\u00e0i \u0111\u1eb7t.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js\u00a0l\u00e0 m\u00f4i tr\u01b0\u1eddng runtime JavaScript m\u00e3 ngu\u1ed3n m\u1edf ho\u1ea1t \u0111\u1ed9ng ph\u00eda m\u00e1y ch\u1ee7 (server-side). C\u00f4ng ngh\u1ec7 n\u00e0y cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng backend c\u00f3 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng cao b\u1eb1ng ch\u00ednh ng\u00f4n ng\u1eef JavaScript quen thu\u1ed9c. H\u01b0\u1edbng d\u1eabn n\u00e0y tr\u00ecnh b\u00e0y c\u1ee5 th\u1ec3 4 ph\u01b0\u01a1ng ph\u00e1p c\u00e0i \u0111\u1eb7t Node.js<\/p>\n","protected":false},"author":2,"featured_media":41465,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[161],"tags":[],"class_list":["post-41444","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-huong-dan-chung"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/41444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/comments?post=41444"}],"version-history":[{"count":7,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/41444\/revisions"}],"predecessor-version":[{"id":41468,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/41444\/revisions\/41468"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/41465"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=41444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=41444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=41444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}