最近在升级Directus的时候,我遇到了一个令人头疼的问题:isolated-vm
组件无法安装。
当我尝试使用 npm update
命令升级整个Directus项目时,总是会在 isolated-vm
组件安装这里卡住,报错说缺少必要的 GLIBC++
和 GLIBC
库。
-
尝试安装缺失的库:
- 为了解决这个库依赖问题,我首先尝试直接安装对应的库文件。但我很快发现,这需要重新编译相关的GCC组件,过程复杂且冗长。即使我成功编译并安装了
Glibc 2.29
,我仍然无法解决GLIBCXX_3.4.29 not found
的错误。
- 为了解决这个库依赖问题,我首先尝试直接安装对应的库文件。但我很快发现,这需要重新编译相关的GCC组件,过程复杂且冗长。即使我成功编译并安装了
-
升级 Node.js:
- 我意识到可能是我的系统默认的GCC版本过低,导致它无法支持
isolated-vm
所需的新版本的libc。因此,我决定升级Node.js。我使用了n
模块来升级Node.js到最新的18.18.0 LTS
版本,并发现在这个版本的Node环境下,我可以成功地安装isolated-vm
。
- 我意识到可能是我的系统默认的GCC版本过低,导致它无法支持
-
停止 PM2 进程:
- 在升级Node.js后,我意识到必须先停止所有由pm2管理的Directus进程。否则,
npm update
仍然无法正确执行。我使用了pm2 stop
命令来做到这一点。
- 在升级Node.js后,我意识到必须先停止所有由pm2管理的Directus进程。否则,
通过升级Node.js,我成功地绕过了直接安装libc库文件的复杂过程,并解决了 isolated-vm
组件的安装问题。现在,我终于可以继续将Directus升级到最新版本。
希望我的经验能够帮助到那些遇到类似问题的开发者!当你在升级依赖组件时遇到问题,不妨换个思路,看看是否可以从升级环境本身入手。