1. 为什么需要离线部署Node.js?从场景说起
你可能觉得,现在网络这么发达,为啥还要折腾离线安装?直接用 apt-get install nodejs 或者 yum install nodejs 不香吗?说实话,我以前也这么想,直到我遇到了几个真实的“坑”。第一次是在一家银行的开发中心,他们的服务器完全隔离在内部网络,连个外网影子都见不着,安全策略严格到连U盘拷贝都要审批。第二次是在一个工厂的工控机房里,设备老旧,网络接口物理禁用,但偏偏需要跑一个用Node.js写的监控服务。还有一次更绝,是在一个海上的钻井平台做数据采集,那地方别说网络了,手机信号都时有时无。
这些场景,就是离线部署的“刚需”场景。企业内网、安全隔离环境、生产车间、嵌入式设备,甚至是某些因为合规要求必须断网运行的金融或政务系统。在这些地方,你没法指望 curl 或者 wget 从官网拉个安装包下来。你得像个“数字背包客”一样,提前把所有需要的“干粮”——也就是安装文件——准备好,带进那个封闭的环境,然后全靠手动操作完成部署。
所以,这篇攻略就是为你准备的,不管你是运维工程师、系统管理员,还是需要在特殊环境下部署应用的前端或全栈开发者。我会把我在这些“与世隔绝”的环境里踩过的坑、总结的经验,掰开揉碎了讲给你听。核心就两条路:从源代码编译安装和使用预编译的二进制文件直接安装。前者更灵活,能适配各种奇奇怪怪的系统环境;后者更快捷,几乎是开箱即用。接下来,我们就一步步来,手把手带你搞定。
2. 战前准备:你的离线“装备包”里需要什么?
别急着动手,磨刀不误砍柴工。离线安装最怕的就是做到一半,发现少了个关键文件,那真是叫天天不应,叫地地不灵。所以,在你有网络的环境下,请务必准备好这个“离线装备包”。
首先,确定目标系统的详细情况。这比你想象的重要得多。用 uname -m 看看CPU架构是x86_64还是arm,用 cat /etc/os-release 看看是CentOS、Ubuntu还是其他发行版,以及具体版本号。我吃过亏,给一个CentOS 7的系统准备了基于glibc高版本编译的二进制包,结果跑不起来,就是因为基础库版本对不上。
其次,下载Node.js安装文件。你需要一个有网络的机器,访问Node.js官网的下载页面。
- 对于二进制安装:直接下载对应你目标系统架构的
.tar.xz压缩包。比如node-v18.20.0-linux-x64.tar.xz。这是最省事的选择。 - 对于源码编译安装:你需要下载
.tar.gz的源码包,例如node-v18.20.0.tar.gz。但是,光有这个还不够! 源码编译需要一堆开发工具和库。你需要根据你的Linux发行版,提前准备好这些依赖包的离线安装包。比如在CentOS/RHEL系,你需要gcc,gcc-c++,make,python3,可能还有openssl-devel。在Ubuntu/Debian系,则是build-essential,python3,libssl-dev等。你可以用yum install --downloadonly --downloaddir=./offline_packages gcc gcc-c++ make这样的命令,把依赖包及其依赖都下载到本地


2094

被折叠的 条评论
为什么被折叠?



