服务器配置教案 Help

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索引文件。

- myrepo - AppStream - Packages - repodata - repod.xml - BaseOS - Packages - repodata

同步: 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

[AppStream] name = AppStream baseurl = http://192.168.2.100/AppStream enabled = 1 # 1启用 gpgcheck = 0 # 0密钥检查关 [BaseOS] name = BaseOS baseurl = http://192.168.2.100/BaseOS enabled = 1 gpgcheck = 0 [Extras] name = Extras baseurl = http://192.168.2.100/Extras enabled = 0 gpgcheck = 0 [Extras-Common] name = Extras-Common baseurl = http://192.168.2.100/Extras-Common enabled = 0 gpgcheck = 0

搭建一个静态文件http服务:
比apache、nginx更方便的是nodejs的http-server 几十个人用没问题,(python 的 http.server虽然也很简单但只能单人用)。 npm install http-server -g
http-server -p 80
浏览器里访问网址验证下通不通。

0-3搭建私有镜像

结束:
yum update40Mb/s瞬间完成🎉,局域网就是快。如果报404检查网址。

经测试,存在各种问题,依赖的metadata信息有可能不准确,还是先同步rpm再创建repodata比较好。占用磁盘和一直开着服务,最终放弃,选择下载软件离线包的方式。

参考

私有镜像仓库 私有镜像仓库2
下载rpm和依赖

Last modified: 25 十一月 2024