论野生技术&二次元

搭建一个apt二进制仓库

仓库中有openresty (nginx), php (7.0-7.1), mysql (5.7-8.0), nmap等,详见这里

适用于Ubuntu 16.04 32位或64位;一键配置脚本

wget https://dl.yooooo.us/build/setup.sh -O -|sudo bash

这个仓库将由两部分组成,一是自己编译的二进制包,二是从ppa等上镜像下来的包。

结构

编译

这里我们用docker来隔离每次编译的环境,同时避免重复地安装每次都会用到的包。

 

编译完成后上传并触发B机签名和生成新的InRelease和Packages。

签名

我们用lua-nginx-moduel写了处理上传,并配合cron实现触发编译。

nginx配置:

安装apt-ftparchive和dpkg-sig。

签名脚本:

生成gpg密钥,然后在cron中添加

*/5 * * * * sudo /path/gen_repo.sh

镜像

使用apt-mirror下载镜像并且重新签名。

安装apt-mirror,然后编辑/etc/apt/mirror.list:

签名脚本:

然后在cron中添加

6 0 */2 * * sudo /path/sync_repo.sh

CDN

使用openresty自建的CDN,有使用需求的小伙伴可以留言:)

测试cname: cdn.yoooo.us

退出移动版