抛砖引玉,发个群晖自行编译套件的教程
2020-11-30 18:37:19
25点赞
109收藏
15评论
拿iperf3举例吧,这个是用来测试带宽的,其实用docker也可以实现,但是编译套件,所占用的空间更小。
但我只学会了spksrc自带的一些套件的编译,外来的软件代码还不知道怎么弄,也希望这篇文章能够抛砖引玉,能够利用起更多的linux程序源代码。
一切都在docker下使用,利用的就是 synocommunity/spksrc 这个容器,
眼熟不
这个容器就是我们安装transmission的时候添加的 套件安装源
从docker上,搜索spksrc,把这个镜像拉取下来,可能会有些慢, 一共880MB。
下载完后,我们要开工了。
先用自己的工具 SSH上群晖
然后执行:docker run -it -v /volume3/docker/spksrc:/spksrc --name spksrc synocommunity/spksrc /bin/bash
这里解释下。 -v /volume3/docker/spksrc:/spksrc 是影射目录。效果如下图
冒号前是本机目录,后边是docker容器里的目录。请根据情况修改
运行完命令后,我就就进入到 spksrc容器的开发环境了
先获取开发工具 ,执行
下载完后,执行cd spksrc/进入套件编译目录。在执行 make setup 生成配置文件local.mk
可以看到,默认版本为DSM6.1
如果要修改默认版本,可以修改目录里的local.mk文件(这个文件在映射的本机目录里面可以找到),倒数第二是是这样的,只修改后边的6.1就行。
当然也可以不修改,在编译的时候直接指定版本。DEFAULT_TC=6.1
在这里说一下,这个开发工具里自带了两类spk的编译配置文件,一个在spk文件夹,这里头就包含下载工具transmission,这一部分在synocommunity套件源里都有,也没必要自己编译;还有一部分在diyspk文件夹里,这里面有带宽测试工具iperf3,网络扫描工具nmap,还有个列目录树的工具tree,这三个我都试了一遍,都是命令行下的工具,没有GUI界面
两类spk编译配置
这里编译一个iperf3,安装后,iperf3命令直接内置,就不用臃肿的docker镜像了root@578d37c01d39:/spksrc/spksrc# cd diyspk #进入iperf3所在的目录
root@578d37c01d39:/spksrc/spksrc/diyspk# ls #只是看看预置了哪些套件的编译配置,不执行也行
arp-scan dar detox fritzctl iperf3 less mc nmap rmlint ser2net testdisk zstd
autossh davfs2 diskutils htop jdupes links nano nmon rnm socat tmux
bc ddrescue file iperf2 js lsscsi ncdu rhash screen sshfs tree
root@578d37c01d39:/spksrc/spksrc/diyspk# cd iperf3 #进入iperf3目录,编译配置文件都在这里
root@578d37c01d39:/spksrc/spksrc/diyspk# make arch-apollolake-6.2.3 编译执行机型指定版本
我的是DS918+系统版本是6.2.3,代码是apollolake;DS3615代码是bromolow。更多的可以到这里来查询。
请注意,第一次编译某个机型,编译脚本会下载对应机型的工具链,群晖发布在sourceforge.net网盘上,速度较慢。此后在编译该机型,就不用在下载工具链。速度应该会快不少。
套件编译好之后会保存在spksrc/package目录下, 可以直接登陆DSM网页去对应的影射目录下载,然后进入套件中心手动安装即可。
安装成功
命令已经内置,无需再用docker
总结:虽然iperf3用处并不大,用到的地方也不多,只是用这个举例子,来说明下如何运用synocommunity/spksrc 工具编译套件。希望有感兴趣的一起研究,对没有预置开发工具里的程序源代码,编写编译配置文件,实现更多源代码的利用,比如 qbittorrent等。