广告预警
其实已经试运行了半年,期间在做各种调整,包括镜像的内容、同步方式、前端视图等。感觉现在应该稳定得差不多了,不过似乎还没有在软协论坛和我的朋友圈之外的地方宣传过,就来水一帖(逃)。
建镜像站的来由没那么复杂,就是软协服务器还有一块 1T 的机械盘处于闲置状态,不用白不用。至于最终目的嘛,也没有多高级,只是说如果你是 SCNU 在校的学生,又恰巧是一个 Linuxer,内网镜像站用起来是很爽的,至于像推广 Linux 等真要考虑的话就太费脑细胞了(捂脸)。
由于镜像了不知道能不能对校外用户二次分发的内容(特指 Matlab)以及服务器确实是土豆服务器(就是南海校区信息中心三楼机房学生用的电脑),目前这个镜像站暂时只面向校内师生内网使用(尽管外网也可以访问,但目前是通过 Frp 内网穿透实现的,大概不会有多好的体验,也不建议在外网使用我们的镜像站),也是这个帖子标签加了 SCNU 的原因。
讲真 1T 不能镜像多少东西,尽管说软协人均 Arch Linux 用户只镜像 Arch 好像真没问题(我好像还是叛徒)。这是我们目前在同步的东西:
- Arch Linux 软件仓库 - 全量同步
- Arch Linux CN 软件仓库 - 全量同步
- Manjaro Linux 软件仓库 - 全量同步
- Ubuntu 软件仓库 - 最新稳定版、Beta 版(若有)和最新 LTS 版,AMD64 架构
另外还有各类系统安装介质、杂七杂八的软件,不过这些大多是手动同步,首页有具体的展示。总的下来大概是 600G 的内容(预计占用空间可参考 TUNA 的同步状态页面)。
如果希望使用的话,Ubuntu 用户要确认自己的系统没有启用其它架构,或者用类似这样的命令移除:
$ sudo dpkg --remove-architecture i386
软件源配置的话,就用 http://10.191.65.243:9000/
换掉你目前的镜像站地址就好了
关于镜像站的搭建,大概就是一个非常简陋的文件服务器,后面学到更多东西估计会进一步优化吧。
实现相关:
- 土豆服务器,1T 机械硬盘(问就是学院提供的)。
- Ubuntu 20.04 LTS,Ext4 文件系统,
noatime
。
- NGINX 文件服务器。
- Docker 容器作为 GitHub Runner 使用 Actions 同步。
- BFSU / TUNA / USTC 作为上游,每日同步两次。
rsync
仓库全量同步(当然像 CentOS 那种目录结构部分同步用这个其实也很方便)。
debmirror
Debian 系发行版部分同步。
- Python 直接写 JSON 文件更新镜像同步状态显示。
- Discourse 论坛发布新闻公告,使用论坛自带 API 获取新闻。
- Fancyindex 前端,首页另外写个
index.html
(MDL 样式,Vue 发行版列表数据绑定)。
一些资源: