0-2 (课外)局域网私有镜像仓库
(课外内容,本节描述简略)
介绍
机房镜像安装后没有调整,机器自动还原,每节课连网卡和换源。如果噢易教学系统增量备份的话,万一出问题影响所有老师,即使没问题,源不一定哪天因为请求量大把学校ip给封了。 但每节课都换源然后update更新源列表,在速度慢(机房windows系统自动更新没关)的情况下又很耗费时间。
(放弃)方案一 下载rpm安装包
一个软件又有许多依赖,安装yum-utils插件后用repotrack命令。(yumdownloader --resolve仍是基于当前环境查询依赖而不是下载所有依赖包)。 yum deplist samba
yum -y install yum-utils
repotrack samba
yum install *.rpm
但这样每节课仍需要分发软件包,只能安装当节课的软件,yum install *.rpm现在也很少见。
方案二 私有镜像仓库
目录组织:参考文章里没有说,刚开始以为要像官方或大的第三方镜像源保持同样目录https://mirrors.aliyun.com/centos-vault/8-stream/AppStream/x86_64/os/Packages/, 其实只要如下,两个大分类下各有Packages和repodata文件夹,repodata文件夹下有repod.xml索引文件。
同步: yum -y install yum-utils
reposync --repo baseos -p ~/myrepo/BaseOS
会下载rpm软件包,文件多比较大需要等待较长时间。
子分类repo名是小写,appstream、 baseos、 extra(可选)、 extra-common(可选)需要各运行一遍。
创建文件索引: yum -y install createrepo
createrepo ~/myrepo/BaseOS
每个子分类需要各运行一遍,运行后会生成repodata文件夹。
同步和下载索引二合一命令: reposync --repo baseos --download-metadata -p ~/myrepo/BaseOS
捷径: 有些文章用的方法是挂载iso,iso是一种封包格式,类似.zip,压缩软件可以解开。怪不得标准版CentOS镜像10G多,一般多linux桌面镜像也就是2~5Gb,原来里面已经包含AppStream和BaseOS,一看大小8个G。 原来,centos自己不维护老软件源后,把这部分网络压力交给了运营商和个人。直接复制出来。如果需要extra repo再独立走上面命令。
配置文件:
备份之前的,/yum.repos.d/下的全部删除,新建my.repo
搭建一个静态文件http服务:
比apache、nginx更方便的是nodejs的http-server 几十个人用没问题,(python 的 http.server虽然也很简单但只能单人用)。 npm install http-server -g
http-server -p 80
浏览器里访问网址验证下通不通。
结束: yum update
40Mb/s瞬间完成🎉,局域网就是快。如果报404检查网址。
经测试,存在各种问题,依赖的metadata信息有可能不准确,还是先同步rpm再创建repodata比较好。占用磁盘和一直开着服务,最终放弃,选择下载软件离线包的方式。