打包发布 Chez Scheme 程序
简单暴力
在 上一篇文章 里说过如何将 Chez Scheme 程序编译为单文件, 不过仍然需要 Chez Scheme 或者是 Petite Chez Scheme 才能运行
但是总不能要求用户都安装 Chez Scheme, 因为这货在各大发行版官方仓库里都没有 (AUR 不是官方仓库), 只能自己编译, 更别说 Windows 了 (好好好, 我知道 Windows 10 发布了一个很重要的特性, 但那现在还是预览版)
解决方法很简单也很暴力, 发布的时候把 Chez Scheme 打包进去
Chez Scheme 依赖两个文件,petite.boot 和 scheme.boot, 如果用的是 Petite Chez Scheme 就只依赖 petite.boot
说到这, .boot
文件到底是什么呢? 请看 Section 9.15. Fasl Output
对于 Chez Scheme, 这两个文件的搜索路径是 ~/lib/csv%v/%m
/usr/lib/csv%v/%m
/usr/local/lib/csv%v/%m
具体的路径得看你安装在哪
如果 make 的时候没有指定, 那就在 /usr/lib/csv%v/%m
%v
和 %m
分别代表了 Chez Scheme 的版本和安装的 machine-type
获取版本用 scheme --version
, 而获取 machine-type
, 可以直接调用 (machine-type)
比如我这里就是 /usr/lib/csv9.4/ta6le/petite.boot
和 /usr/lib/csv9.4/ta6le/scheme.boot
可以通过 --boot
或 -b
参数来加载这俩文件
然后把这几个 .boot
文件和 scheme
程序再加个启动脚本打包分发就行了
启动脚本很简单
#!/bin/bash
./scheme -b ./petite.boot -b ./scheme.boot --program ./main.boot
类似这样的, 只需要根据实际情况改一下文件名, main.boot 是编译出来的主程序
如果考虑到动态链接库问题, 就把 Chez Scheme 静态编译, 或者把静态链接库也打包进去