/frpc_spk_build

build frpc to spk package in synology dsm.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

frpc_spk_build 项目说明

  • build frpc to spk package in synology dsm.
  • 将frpc打包成群晖的spk安装包,方便分享与传播.
  • 集成了frpc版本:0.30.0
  • 群晖的打包除了官方环境的下载与部署之外,本身项目的spk构造也是很烦琐的一下事情,在本项目中我已将所有的构造文件写好,并push到了本项目中,可以直接一键打包.
  • 同时,希望本项目对大家日后打其他spk包有参考作用
  • 感谢源项目:https://github.com/fatedier/frp

打包环境构建

1. clone或者下载本项目

git clone https://github.com/qiusanshiye/frpc_spk_build.git

2. 下载群晖官方打包工具

cd frpc_spk_build
git clone https://github.com/SynologyOpenSource/pkgscripts-ng.git

3. 部署群晖官方打包环境

cd pkgscripts-ng
./EnvDeploy -v 6.0 -p x64
# 我这里部署的是群晖的 x64 架构的6.0版本的DSM环境
# 注意:这里需要python环境,我这里用的是python2.7。其他版本未测试。

待部署完成后,目录结构会是这样:

# tree -L 1
.
├── build_env # 新增的目录,群晖的chroot打包签名环境
├── gofrpc_build.sh # 一键打包脚本
├── LICENSE
├── pkgscripts-ng # 第2步中下载的打包工具
├── README.md
├── result_spk  # 这个建议先手动创建,在打包之后会输出到这个目录
├── source    # 项目文件构造
└── toolkit_tarballs  # 新增的目录,群晖的打包环境镜像

4. 生成spk签名证书

gpg --gen-key
cp -rf ~/.gnupg ./build_env/ds.x64-6.0/root/

5. 开始一键打包

  • 先更新frpc最新版本
  • 这里下载最新的frp包,解压后拷贝frpc到 ./source/gofrpc/bin/arch/目录下
  • 当前我已集成了frpc的0.30.0版本的程序
  • 再更新想要打包的spk的版本号
vim source/gofrpc/INFO.sh
# 修改字段 version="1.0.1"
  • 开始一键打包
./gofrpc_build.sh
# 没有出错的情况下会看到以下日志输出:
# [SUCCESS] PkgCreate.py -v 6.0 -p x64 -c gofrpc finished.
# 最终输出的spk路径:./build_env/ds.x64-6.0/image/packages/gofrpc-1.0.1.spk
# 也可以在这里找到: ./result_spk/gofrpc-1.0.1/
# 接下就可以上群晖套件中心手动安装试试啦

如果不想部署这么简单(个鬼)的打包环境,也可以直接使用我已经打好的包, 点击项目releases下载

6. 环境部署与打包过程中可能会遇到的问题

  • 提示没有权限

非root用户执行上述各步时,请使用 sudo 执行

  • 群晖镜像无法下载或者太慢
  • 建议屏蔽工具中的下载逻辑:打开 pkgscripts-ng/EnvDeploy, 注释:urllib.request.urlretrieve(url, dest, reporthook=reporthook) 这一行(大概在86行)
  • 在上述的第3步中执行EnvDeploy命令时,会输出下载链接,我们可以把用迅雷下载,完后拷贝到 toolkit_tarballs 目录。
  • 再次执行3步EnvDeploy命令即可.
  • 怎么打frps的spk包
  • 拷贝一份本项目,把所有的 frpc文字 改成 frps.
  • 将各个平台的frps可执行文件拷贝到这个目录:./source/gofrpc/bin/arch/
  • 执行一键打包脚本即可
  • 其他问题

请移步这里