最近有折腾小程序的意向,但微信的开发者工具只提供了 Windows 和 Mac 两个版本,对于我这样的 Linux 用户来说不是那么地友好。
经过观察发现,那个开发者工具实际上是基于nw.js开发的,天然地具有跨平台的属性,搜索Github的时候刚好发现这个项目:
cytle/wechat_web_devtools: 微信开发者工具(微信小程序)linux完美支持
于是我按照README的教程装好 Wine,运行脚本配置安装。装好后发现功能基本正常,唯独不能正常编译小程序代码,提示run-detectors: unable to find an interpreter xxxxxxx
文档给出的解决办法是,安装一个 wine-binfmt 包,当我敲下 sudo apt install 之后尴尬的发现, Ubuntu 16.04 LTS 缺失了这个包,想到配置各种下载源,也是挺让人绝望的。
不过呢,天无绝人之路。几经周折,刚好看到了 Adding binfmt configuration to official Wine packages,整理了一个相关的解决方案,只需要手动添加一个解析 Windows 的 exe 的 binfmt 配置就可以了,大概那个 deb 包更改的内容也是这些吧。
具体的操作如下:vim /usr/share/binfmts/wine
内容填入package wine
interpreter /usr/bin/wine
magic MZ
保存退出,更新一下配置就好了sudo update-binfmts --import wine
寻找解决方案的过程中,看到 Java, Python 也有东西放在了 binfmt 目录里面,内容也是类似的。
或许这和那些脚本文件的第一行的 #!/bin/sh, #!/usr/bin/env node 之类的注释冥冥之中有什么关联?
大概这些东西和Linux内核有点关系,有时间的话得研究研究,说不定又打开了一个新世界呢;D