Ubuntu 16.04 运行微信开发者工具编译出错的解决办法

技术

最近有折腾小程序的意向,但微信的开发者工具只提供了 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 目录里面,内容也是类似的。

3201756398.png3201756398.png

或许这和那些脚本文件的第一行的 #!/bin/sh#!/usr/bin/env node 之类的注释冥冥之中有什么关联?

大概这些东西和Linux内核有点关系,有时间的话得研究研究,说不定又打开了一个新世界呢;D