{"id":52115,"date":"2024-12-03T10:04:12","date_gmt":"2024-12-03T02:04:12","guid":{"rendered":"https:\/\/fwq.ai\/blog\/52115\/"},"modified":"2024-12-03T10:04:12","modified_gmt":"2024-12-03T02:04:12","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8linux%e4%b8%ad%e5%ae%89%e8%a3%85node","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/52115\/","title":{"rendered":"\u5982\u4f55\u5728linux\u4e2d\u5b89\u88c5node"},"content":{"rendered":"<p><b><\/b>     <\/p>\n<h1>\u5982\u4f55\u5728linux\u4e2d\u5b89\u88c5node<\/h1>\n<p>\u5bf9\u4e8e\u4e00\u4e2a\u6587\u7ae0\u5f00\u53d1\u8005\u6765\u8bf4\uff0c\u7262\u56fa\u624e\u5b9e\u7684\u57fa\u7840\u662f\u5341\u5206\u91cd\u8981\u7684\uff0c\u7c73\u4e91\u5c31\u6765\u5e26\u5927\u5bb6\u4e00\u70b9\u70b9\u7684\u638c\u63e1\u57fa\u7840\u77e5\u8bc6\u70b9\u3002\u4eca\u5929\u672c\u7bc7\u6587\u7ae0\u5e26\u5927\u5bb6\u4e86\u89e3\u300a\u5982\u4f55\u5728linux\u4e2d\u5b89\u88c5node\u300b\uff0c\u4e3b\u8981\u4ecb\u7ecd\u4e86\uff0c\u5e0c\u671b\u5bf9\u5927\u5bb6\u7684\u77e5\u8bc6\u79ef\u7d2f\u6709\u6240\u5e2e\u52a9\uff0c\u5feb\u70b9\u6536\u85cf\u8d77\u6765\u5427\uff0c\u5426\u5219\u9700\u8981\u65f6\u5c31\u627e\u4e0d\u5230\u4e86\uff01<\/p>\n<\/p>\n<blockquote>\n<p>\u5728linux\u4e2d\u5b89\u88c5node\u7684\u65b9\u6cd5\uff1a1\u3001\u4e0b\u8f7d\u201cnode-v16.18.0-linux-x64.tar.xz\u201d\u5e76\u5c06\u5176\u653e\u5230linux\u670d\u52a1\u5668\u4e0a\uff1b2\u3001\u5728linux\u4e0a\u89e3\u538b\u201cnode-v16.18.0-linux-x64.tar.xz\u201d\uff1b3\u3001\u914d\u7f6e\u5168\u5c40\u8def\u5f84PATH\u5728\u201c\/etc\/profile\u201d\u6587\u4ef6\u4e2d\uff1b4\u3001\u5237\u65b0\u201csource \/etc\/profile\u201d\uff1b5\u3001\u5728bin\u6587\u4ef6\u4e2d\u8fdb\u884c\u6743\u9650\u5206\u914d\u5373\u53ef\u3002<\/p>\n<\/blockquote>\n<p><strong>linux \u670d\u52a1\u5668\u7684node \u5b89\u88c5<\/strong><\/p>\n<p>1.\u5148\u4e0b\u8f7d node \u5f53\u7136\u4e0b\u8f7d\u7684\u662f\u7b26\u5408linux \u7cfb\u7edf\u7684 \u6211\u5f53\u65f6\u4e0b\u8f7d\u7684\u662f node-v16.18.0-linux-x64.tar.xz<\/p>\n<p>2. \u628a node-v16.18.0-linux-x64.tar.xz \u653e\u5230linux \u670d\u52a1\u5668\u4e0a \u6211\u5f53\u65f6\u662f\u7528ftq \u653e\u5230\u4e86 \/usr\/local\u6587\u4ef6\u5939\u4e0b\u65b0\u5efa\u4e86\u4e00\u4e2a node \u6587\u4ef6<\/p>\n<p>3.\u89e3\u538b node-v16.18.0-linux-x64.tar.xz \u5fc5\u987b\u5728linux \u670d\u52a1\u5668\u4e0a\u89e3\u538b\u3002\u5728window \u4e2d\u89e3\u538b\u518d\u653e\u4e0a\u53bb\u4f7f\u7528npm \u4f1a\u62a5\u9519 \u89e3\u538b\u4ee3\u7801 tar -xJvf node-v16.18.0-linux-x64.tar.xz<\/p>\n<p>4.\u914d\u7f6e \u5168\u5c40\u8def\u52b2PATH \u5728 \/etc\/profile \u6587\u4ef6\u8fdb\u884c\u5982\u4e0b\u8bbe\u7f6e \u6ce8\u91ca\uff1a\uff08\u4e3b\u8981\u770bpathmunge \u51fd\u6570\u7684\u4f7f\u7528\u4e0d\u4f1a\u7684\u53ef\u4ee5\u767e\u5ea6\u67e5\u4e00\u4e0blinux \u51fd\u6570\u4f7f\u7528\uff09\u628anode\u6587\u4ef6\u91cc\u9762bin \u8def\u52b2\u6dfb\u52a0\u5230\u5168\u5c40\u8def\u5f84<\/p>\n<pre>pathmunge&nbsp;\/usr\/local\/linuxNode\/node-v16.18.0-linux-x64\/bin&nbsp;after\n\n#&nbsp;\/etc\/profile\n&nbsp;\n#&nbsp;System&nbsp;wide&nbsp;environment&nbsp;and&nbsp;startup&nbsp;programs,&nbsp;for&nbsp;login&nbsp;setup\n#&nbsp;Functions&nbsp;and&nbsp;aliases&nbsp;go&nbsp;in&nbsp;\/etc\/bashrc\n&nbsp;\n#&nbsp;It's&nbsp;NOT&nbsp;a&nbsp;good&nbsp;idea&nbsp;to&nbsp;change&nbsp;this&nbsp;file&nbsp;unless&nbsp;you&nbsp;know&nbsp;what&nbsp;you\n#&nbsp;are&nbsp;doing.&nbsp;It's&nbsp;much&nbsp;better&nbsp;to&nbsp;create&nbsp;a&nbsp;custom.sh&nbsp;shell&nbsp;script&nbsp;in\n#&nbsp;\/etc\/profile.d\/&nbsp;to&nbsp;make&nbsp;custom&nbsp;changes&nbsp;to&nbsp;your&nbsp;environment,&nbsp;as&nbsp;this\n#&nbsp;will&nbsp;prevent&nbsp;the&nbsp;need&nbsp;for&nbsp;merging&nbsp;in&nbsp;future&nbsp;updates.\n#pathmunge&nbsp;\u662fLinux&nbsp;\u51fd\u6570&nbsp;&nbsp;\npathmunge&nbsp;()&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;\":${PATH}:\"&nbsp;in\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*:\"$1\":*)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;\"$2\"&nbsp;=&nbsp;\"after\"&nbsp;]&nbsp;;&nbsp;then\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PATH=$PATH:$1\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PATH=$1:$PATH\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi\n&nbsp;&nbsp;&nbsp;&nbsp;esac\n}\n&nbsp;\n&nbsp;\nif&nbsp;[&nbsp;-x&nbsp;\/usr\/bin\/id&nbsp;];&nbsp;then\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;-z&nbsp;\"$EUID\"&nbsp;];&nbsp;then\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;ksh&nbsp;workaround\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EUID=`\/usr\/bin\/id&nbsp;-u`\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UID=`\/usr\/bin\/id&nbsp;-ru`\n&nbsp;&nbsp;&nbsp;&nbsp;fi\n&nbsp;&nbsp;&nbsp;&nbsp;USER=\"`\/usr\/bin\/id&nbsp;-un`\"\n&nbsp;&nbsp;&nbsp;&nbsp;LOGNAME=$USER\n&nbsp;&nbsp;&nbsp;&nbsp;MAIL=\"\/var\/spool\/mail\/$USER\"\nfi\n&nbsp;\n#&nbsp;Path&nbsp;manipulation&nbsp;\n#$EUID&nbsp;\u662f\u5168\u5c40\u53d8\u91cf&nbsp;\u5224\u65ad\u7528\u6237\u662f\u5426\u5177\u6709\u6743\u9650\nif&nbsp;[&nbsp;\"$EUID\"&nbsp;=&nbsp;\"0\"&nbsp;];&nbsp;then\n&nbsp;&nbsp;&nbsp;&nbsp;pathmunge&nbsp;\/usr\/sbin\n&nbsp;&nbsp;&nbsp;&nbsp;pathmunge&nbsp;\/usr\/local\/sbin\nelse\n&nbsp;&nbsp;&nbsp;&nbsp;pathmunge&nbsp;\/usr\/local\/sbin&nbsp;after\n&nbsp;&nbsp;&nbsp;&nbsp;pathmunge&nbsp;\/usr\/sbin&nbsp;after\nfi\n&nbsp;\nHOSTNAME=`\/usr\/bin\/hostname&nbsp;2&gt;\/dev\/null`\nHISTSIZE=1000\nif&nbsp;[&nbsp;\"$HISTCONTROL\"&nbsp;=&nbsp;\"ignorespace\"&nbsp;]&nbsp;;&nbsp;then\n&nbsp;&nbsp;&nbsp;&nbsp;export&nbsp;HISTCONTROL=ignoreboth\nelse\n&nbsp;&nbsp;&nbsp;&nbsp;export&nbsp;HISTCONTROL=ignoredups\nfi\n&nbsp;\n#\u4f7f\u7528&nbsp;pathmunge&nbsp;\u51fd\u6570&nbsp;\npathmunge&nbsp;\/usr\/local\/linuxNode\/node-v16.18.0-linux-x64\/bin&nbsp;after\n&nbsp;\nexport&nbsp;PATH&nbsp;USER&nbsp;LOGNAME&nbsp;MAIL&nbsp;HOSTNAME&nbsp;HISTSIZE&nbsp;HISTCONTROL\n&nbsp;\n#&nbsp;By&nbsp;default,&nbsp;we&nbsp;want&nbsp;umask&nbsp;to&nbsp;get&nbsp;set.&nbsp;This&nbsp;sets&nbsp;it&nbsp;for&nbsp;login&nbsp;shell\n#&nbsp;Current&nbsp;threshold&nbsp;for&nbsp;system&nbsp;reserved&nbsp;uid\/gids&nbsp;is&nbsp;200\n#&nbsp;You&nbsp;could&nbsp;check&nbsp;uidgid&nbsp;reservation&nbsp;validity&nbsp;in\n#&nbsp;\/usr\/share\/doc\/setup-*\/uidgid&nbsp;file\nif&nbsp;[&nbsp;$UID&nbsp;-gt&nbsp;199&nbsp;]&nbsp;&amp;&amp;&nbsp;[&nbsp;\"`\/usr\/bin\/id&nbsp;-gn`\"&nbsp;=&nbsp;\"`\/usr\/bin\/id&nbsp;-un`\"&nbsp;];&nbsp;then\n&nbsp;&nbsp;&nbsp;&nbsp;umask&nbsp;002\nelse\n&nbsp;&nbsp;&nbsp;&nbsp;umask&nbsp;022\nfi\n&nbsp;\nfor&nbsp;i&nbsp;in&nbsp;\/etc\/profile.d\/*.sh&nbsp;\/etc\/profile.d\/sh.local&nbsp;;&nbsp;do\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;-r&nbsp;\"$i\"&nbsp;];&nbsp;then\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;\"${-#*i}\"&nbsp;!=&nbsp;\"$-\"&nbsp;];&nbsp;then&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;\"$i\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;\"$i\"&nbsp;&gt;\/dev\/null\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi\n&nbsp;&nbsp;&nbsp;&nbsp;fi\ndone\n&nbsp;\nunset&nbsp;i\nunset&nbsp;-f&nbsp;pathmunge<\/pre>\n<p>5.\u8fdb\u884c \u5237\u65b0 source \/etc\/profile<\/p>\n<p>6.\u8fdb\u5165\u5230\u6211\u4eec\u6309\u94ae\u7684node \u6587\u4ef6\u7684bin \u6587\u4ef6 \u8fdb\u884c\u6743\u9650\u5206\u914d\u3002chmod +x node \u6216\u8005 chmod +x node<\/p>\n<p>\u4eca\u5929\u5173\u4e8e\u300a\u5982\u4f55\u5728linux\u4e2d\u5b89\u88c5node\u300b\u7684\u5185\u5bb9\u5c31\u4ecb\u7ecd\u5230\u8fd9\u91cc\u4e86\uff0c\u662f\u4e0d\u662f\u5b66\u8d77\u6765\u4e00\u76ee\u4e86\u7136\uff01\u60f3\u8981\u4e86\u89e3\u66f4\u591a\u5173\u4e8eLinux,node\u7684\u5185\u5bb9\u8bf7\u5173\u6ce8\u7c73\u4e91\u516c\u4f17\u53f7\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5982\u4f55\u5728linux\u4e2d\u5b89\u88c5node \u5bf9\u4e8e\u4e00\u4e2a\u6587\u7ae0\u5f00\u53d1\u8005\u6765\u8bf4\uff0c\u7262\u56fa\u624e\u5b9e\u7684\u57fa\u7840\u662f\u5341\u5206\u91cd\u8981\u7684\uff0c\u7c73\u4e91\u5c31\u6765\u5e26\u5927\u5bb6\u4e00\u70b9\u70b9\u7684\u638c\u63e1\u57fa\u7840\u77e5\u8bc6\u70b9\u3002\u4eca\u5929\u672c\u7bc7\u6587\u7ae0\u5e26\u5927\u5bb6\u4e86\u89e3\u300a\u5982\u4f55\u5728linux\u4e2d\u5b89\u88c5node\u300b\uff0c\u4e3b\u8981\u4ecb\u7ecd\u4e86\uff0c\u5e0c\u671b\u5bf9\u5927\u5bb6\u7684\u77e5\u8bc6\u79ef\u7d2f\u6709\u6240\u5e2e\u52a9\uff0c\u5feb\u70b9\u6536\u85cf\u8d77\u6765\u5427\uff0c\u5426\u5219\u9700\u8981\u65f6\u5c31\u627e\u4e0d\u5230\u4e86\uff01 \u5728linux\u4e2d\u5b89\u88c5node\u7684\u65b9\u6cd5\uff1a1\u3001\u4e0b\u8f7d\u201cnode-v16.18.0-linux-x64.tar.xz\u201d\u5e76\u5c06\u5176\u653e\u5230linux\u670d\u52a1\u5668\u4e0a\uff1b2\u3001\u5728linux\u4e0a\u89e3\u538b\u201cnode-v16.18.0-linux-x64.tar.xz\u201d\uff1b3\u3001\u914d\u7f6e\u5168\u5c40\u8def\u5f84PATH\u5728\u201c\/etc\/profile\u201d\u6587\u4ef6\u4e2d\uff1b4\u3001\u5237\u65b0\u201csource \/etc\/profile\u201d\uff1b5\u3001\u5728bin\u6587\u4ef6\u4e2d\u8fdb\u884c\u6743\u9650\u5206\u914d\u5373\u53ef\u3002 linux \u670d\u52a1\u5668\u7684node \u5b89\u88c5 1.\u5148\u4e0b\u8f7d node \u5f53\u7136\u4e0b\u8f7d\u7684\u662f\u7b26\u5408linux \u7cfb\u7edf\u7684 \u6211\u5f53\u65f6\u4e0b\u8f7d\u7684\u662f node-v16.18.0-linux-x64.tar.xz 2. \u628a node-v16.18.0-linux-x64.tar.xz \u653e\u5230linux \u670d\u52a1\u5668\u4e0a \u6211\u5f53\u65f6\u662f\u7528ftq \u653e\u5230\u4e86 \/usr\/local\u6587\u4ef6\u5939\u4e0b\u65b0\u5efa\u4e86\u4e00\u4e2a node \u6587\u4ef6 3.\u89e3\u538b node-v16.18.0-linux-x64.tar.xz \u5fc5\u987b\u5728linux \u670d\u52a1\u5668\u4e0a\u89e3\u538b\u3002\u5728window \u4e2d\u89e3\u538b\u518d\u653e\u4e0a\u53bb\u4f7f\u7528npm \u4f1a\u62a5\u9519 \u89e3\u538b\u4ee3\u7801 tar -xJvf node-v16.18.0-linux-x64.tar.xz 4.\u914d\u7f6e \u5168\u5c40\u8def\u52b2PATH \u5728 \/etc\/profile \u6587\u4ef6\u8fdb\u884c\u5982\u4e0b\u8bbe\u7f6e \u6ce8\u91ca\uff1a\uff08\u4e3b\u8981\u770bpathmunge \u51fd\u6570\u7684\u4f7f\u7528\u4e0d\u4f1a\u7684\u53ef\u4ee5\u767e\u5ea6\u67e5\u4e00\u4e0blinux \u51fd\u6570\u4f7f\u7528\uff09\u628anode\u6587\u4ef6\u91cc\u9762bin \u8def\u52b2\u6dfb\u52a0\u5230\u5168\u5c40\u8def\u5f84 pathmunge&nbsp;\/usr\/local\/linuxNode\/node-v16.18.0-linux-x64\/bin&nbsp;after #&nbsp;\/etc\/profile &nbsp; #&nbsp;System&nbsp;wide&nbsp;environment&nbsp;and&nbsp;startup&nbsp;programs,&nbsp;for&nbsp;login&nbsp;setup #&nbsp;Functions&nbsp;and&nbsp;aliases&nbsp;go&nbsp;in&nbsp;\/etc\/bashrc &nbsp; #&nbsp;It&#8217;s&nbsp;NOT&nbsp;a&nbsp;good&nbsp;idea&nbsp;to&nbsp;change&nbsp;this&nbsp;file&nbsp;unless&nbsp;you&nbsp;know&nbsp;what&nbsp;you #&nbsp;are&nbsp;doing.&nbsp;It&#8217;s&nbsp;much&nbsp;better&nbsp;to&nbsp;create&nbsp;a&nbsp;custom.sh&nbsp;shell&nbsp;script&nbsp;in #&nbsp;\/etc\/profile.d\/&nbsp;to&nbsp;make&nbsp;custom&nbsp;changes&nbsp;to&nbsp;your&nbsp;environment,&nbsp;as&nbsp;this #&nbsp;will&nbsp;prevent&nbsp;the&nbsp;need&nbsp;for&nbsp;merging&nbsp;in&nbsp;future&nbsp;updates. #pathmunge&nbsp;\u662fLinux&nbsp;\u51fd\u6570&nbsp;&nbsp; pathmunge&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#8220;:${PATH}:&#8221;&nbsp;in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-52115","post","type-post","status-publish","format-standard","hentry","category-os"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/52115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=52115"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/52115\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=52115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=52115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=52115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}