解决Cloudflare Wrangler在rk3588s设备上不可用的问题
在rk3588s(或arm64设备)上解决Cloudflare Wrangler不可用的问题,主要方法是通过重新编译workerd来禁用tcmalloc。虽然这种方法可能会带来一些性能下降,但可以解决wrangler在特定架构上的崩溃问题。以下是详细的步骤和说明。
环境准备
首先,需要克隆workerd的源码仓库:
https://github.com/cloudflare/workerd.git根据官方文档,需要准备以下工具链:
- Clang 19+(例如,在Debian Bookworm上安装的clang-19包)。如果clang安装为clang-
,请在PATH中创建一个名为clang的链接,或者在使用bazel命令时使用--action_env=CC=clang- 指定编译器。 - libc++ 19+(例如,安装libc++-19-dev和libc++abi-19-dev包)。
- LLD 19+(例如,安装lld-19包)。
- python3, python3-distutils, 和tcl8.6。
构建
使用以下命令构建workerd,禁用tcmalloc:
bazel build --@workerd//src/workerd/server:use_tcmalloc=False //src/workerd/server:workerd或者使用简化的命令:
just build --@workerd//src/workerd/server:use_tcmalloc=False替换文件
确保你位于workerd仓库目录下,然后执行以下命令替换现有的workerd二进制文件:
sudo cp ./bazel-bin/src/workerd/server/workerd $(npm root -g)/workerd/bin/workerd如果需要还原,只需重新安装即可。
结论
通过上述步骤,可以解决wrangler在rk3588s或arm64设备上的不可用问题。虽然可能会遇到一些性能下降,但这是为了解决特定架构上的兼容性问题所必须的。希望这些信息对遇到类似问题的用户有所帮助。
评论已关闭