27.7 Node.js 开发环境
Node.js 依赖特定版本的 /lib/libcrypto.so,在 FreeBSD 上安装前需先更新基本系统。
27.7.1 更新基本系统
使用 pkg 安装的二进制 Node.js 依赖特定版本的 /lib/libcrypto.so.xxx 文件,在 FreeBSD 上使用 Node.js 时,需要关注 FreeBSD 系统的版本,尤其是在配置 pkg 使用 latest 源的情况下。
在 FreeBSD 上安装 Node.js 前,应先更新基本系统。
无论使用何种包管理器,都将自动安装对应版本的 Node.js。
27.7.2 Node.js 包管理器比较
| 评估维度 | npm | Yarn | Bun |
|---|---|---|---|
| 底层开发语言 | JavaScript | JavaScript | Zig |
| 执行运行时 | Node.js | Node.js | 原生 Bun Runtime |
| 依赖解析机制 | 扁平化依赖树 + hoisting | node_modules / Plug'n'Play(PnP) | 高并发安装 + 扁平化 node_modules |
| 磁盘存储策略 | 物理 node_modules | node_modules 或 PnP 虚拟解析 | 全局缓存 + 硬链接/克隆优化 |
| 锁定文件 | package-lock.json | yarn.lock | bun.lock |
| TypeScript 支持 | 依赖 tsc / tsx / esbuild 等 | 同 npm | 原生执行 .ts |
| 兼容性 | Node.js 官方标准 | 高兼容性 | Node API 兼容有待完善 |
其中,Bun 是一套 JavaScript 运行时,不仅是 Node.js 包管理器。
27.7.3 Bun
使用 pkg 安装:
sh
pkg install bun或使用 Ports 安装:
sh
# cd /usr/ports/lang/bun/
# make install clean27.7.4 Yarn
使用 pkg 安装:
sh
# pkg install yarn或使用 Ports 安装:
sh
# cd /usr/ports/www/yarn/
# make install clean27.7.5 NPM
使用 pkg 安装:
sh
# pkg install npm或使用 ports 安装:
sh
# cd /usr/ports/www/npm/
# make install clean27.7.5.1 FreeBSD NPM 切换软件源
设置 npm 使用国内镜像源以加快下载速度:
sh
# npm config set registry https://registry.npmmirror.com该地址为原淘宝镜像站,详情见 https://npmmirror.com,该站点提供 NPM 国内镜像加速服务。
27.7.6 故障排除与未竟事宜
27.7.6.1 ld-elf.so.1 错误
若跳过 FreeBSD 基本系统的更新而直接安装软件,则可能遇到以下错误:
sh
$ node # 启动 Node.js 交互式命令行
ld-elf.so.1: /lib/libcrypto.so.111: version OPENSSL_1_1_1e required by /usr/local/bin/node not found注意
上述错误信息中的
libcrypto.so.111对应 OpenSSL 1.1.1(FreeBSD 13 及更早版本)。在 FreeBSD 14 及 15 中,基本系统的 OpenSSL 已升级至 3.x,对应的库文件为libcrypto.so.8,错误信息会有所不同,但根本原因相同:基本系统需要先更新。
由于 Ports 会根据当前系统的库版本编译,所以使用 Ports 编译安装不会出现上述问题。