在 NixOS 里设置 Magisk 编译环境
目录
在迁移到 NixOS 后,我面对的第一个开发问题是:Magisk 编译不动了 1。
众所周知,NixOS 默认并没有安装 linker
。这会导致你在执行 Magisk 自带的编译工具链时,出现以下报错信息:
...
Error on executing binary file: No such file or directory
...
实际上,这个报错很具有迷惑性。它其实并不是:
系统找不到你请求执行的可执行文件
而是:
系统找不到动态链接库程序 linker 的可执行文件
详情可参考这个 issue 。
解决方案也很简单,只要创建一个合适的环境就好了。 buildFHSUserEnv 可以胜任这个工作。
你可以在 我的这个 gist 里找到可以直接使用的成品。将它下载下来,并执行以下指令:
nix-shell magisk.nix
你就可以得到一个完备的 Magisk 开发环境。
事实上,早期我还未熟悉 NixOS 环境的时候,使用的是基于 LXC 技术的 Debian 容器,来完成编译 Magisk 的任务。然而,容器技术实在是过于重量级。在熟络了 NixOS 后,我便抛弃了这种做法,并顺便写下了这篇文章 :) ↩︎
阅读其他文章