下载得到的是一个压缩的文件,直接解压得到的是一个单独的二进制文件(约116MB)
然后直接开跑就可以了,数据会加载到当前目录下
做这个的目的除了水一帖之外,就是测试新型打包技巧,然后再应用到SS服里去(
当然单文件不是重点,重点是单文件的情况下也能正常运行,而且不会产生垃圾文件(
原理就是把文件塞可执行文件后头,然后运行时加载这些文件,通过fuse的方式挂到tmp上,接着chroot进去跑就行了
既然提到了fuse,那就说明这玩意肯定依赖于fuse驱动和相关程序,而我使用的是最新版本,所以需要先安装fuse3才能正常运行
当然本程序也是可以用普通用户的权限跑的,但是需要进行一点点修改,具体来说,就是你需要让你的用户有权限挂载fuse,譬如说加入到fuse用户组里,然后再把/dev/fuse的拥有者改对(似乎就debian打包会有这个bug,其他发行版没这个问题的)
fuse3大概是唯一的依赖了
PS: 大家如果也想玩玩这个打包技术的话,可以来玩这个 codehz/EasyPak 其中release里有已经构建好的可执行文件
这个项目的构建脚本为
其中bds为我之前做的那个docker镜像版的解压目录
然后直接开跑就可以了,数据会加载到当前目录下
做这个的目的除了水一帖之外,就是测试新型打包技巧,然后再应用到SS服里去(
当然单文件不是重点,重点是单文件的情况下也能正常运行,而且不会产生垃圾文件(
原理就是把文件塞可执行文件后头,然后运行时加载这些文件,通过fuse的方式挂到tmp上,接着chroot进去跑就行了
既然提到了fuse,那就说明这玩意肯定依赖于fuse驱动和相关程序,而我使用的是最新版本,所以需要先安装fuse3才能正常运行
当然本程序也是可以用普通用户的权限跑的,但是需要进行一点点修改,具体来说,就是你需要让你的用户有权限挂载fuse,譬如说加入到fuse用户组里,然后再把/dev/fuse的拥有者改对(似乎就debian打包会有这个bug,其他发行版没这个问题的)
fuse3大概是唯一的依赖了
PS: 大家如果也想玩玩这个打包技术的话,可以来玩这个 codehz/EasyPak 其中release里有已经构建好的可执行文件
这个项目的构建脚本为
Code:
print BDS 单文件绿色版 by CodeHz
mktmpfs /tmp
fuse /tmp
@bds
bind .:/tmp/data
chroot /tmp
chdir /server
exec-passthru /server/launcher